diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/README.md b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/README.md index 66096b11bdac..ff9208d035c6 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/README.md +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/README.md @@ -1,7 +1,7 @@ # Microsoft Azure SDK for Python This is the Microsoft Azure Recovery Services Site Recovery Management Client Library. -This package has been tested with Python 3.8+. +This package has been tested with Python 3.9+. 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.8+ is required to use this package. +- Python 3.9+ is required to use this package. - [Azure subscription](https://azure.microsoft.com/free/) ### Install the package @@ -24,7 +24,7 @@ pip install azure-identity ### Authentication -By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configure of following environment variables. +By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configuration of the following environment variables. - `AZURE_CLIENT_ID` for Azure client ID. - `AZURE_TENANT_ID` for Azure tenant ID. diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/_meta.json b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/_meta.json index ae40f7902488..35a31043e1fe 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/_meta.json +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/_meta.json @@ -1,11 +1,11 @@ { - "commit": "a4d405de616be574891325c48a08298f60e6692b", + "commit": "5f58edc44823413241cdfcb4810d889d9d4ba825", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest": "3.9.7", + "autorest": "3.10.2", "use": [ - "@autorest/python@6.7.1", - "@autorest/modelerfour@4.26.2" + "@autorest/python@6.33.0", + "@autorest/modelerfour@4.27.0" ], - "autorest_command": "autorest specification/recoveryservicessiterecovery/resource-manager/readme.md --generate-sample=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/home/vsts/work/1/azure-sdk-for-python/sdk --use=@autorest/python@6.7.1 --use=@autorest/modelerfour@4.26.2 --version=3.9.7 --version-tolerant=False", + "autorest_command": "autorest specification/recoveryservicessiterecovery/resource-manager/readme.md --generate-sample=True --generate-test=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-python/sdk --use=@autorest/python@6.33.0 --use=@autorest/modelerfour@4.27.0 --version=3.10.2 --version-tolerant=False", "readme": "specification/recoveryservicessiterecovery/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/__init__.py index bcb56f3427f4..ca8899fc2459 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/__init__.py @@ -5,15 +5,21 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position -from ._site_recovery_management_client import SiteRecoveryManagementClient +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._site_recovery_management_client import SiteRecoveryManagementClient # type: ignore from ._version import VERSION __version__ = VERSION try: from ._patch import __all__ as _patch_all - from ._patch import * # pylint: disable=unused-wildcard-import + from ._patch import * except ImportError: _patch_all = [] from ._patch import patch_sdk as _patch_sdk @@ -21,6 +27,6 @@ __all__ = [ "SiteRecoveryManagementClient", ] -__all__.extend([p for p in _patch_all if p not in __all__]) +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore _patch_sdk() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_configuration.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_configuration.py index f42709d32fc8..22932536a03f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_configuration.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_configuration.py @@ -8,18 +8,16 @@ from typing import Any, TYPE_CHECKING -from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMChallengeAuthenticationPolicy, ARMHttpLoggingPolicy from ._version import VERSION if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials import TokenCredential -class SiteRecoveryManagementClientConfiguration(Configuration): # pylint: disable=too-many-instance-attributes +class SiteRecoveryManagementClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long """Configuration for SiteRecoveryManagementClient. Note that all parameters used to create this instance are saved as instance @@ -34,7 +32,7 @@ class SiteRecoveryManagementClientConfiguration(Configuration): # pylint: disab :type resource_group_name: str :param resource_name: The name of the recovery services vault. Required. :type resource_name: str - :keyword api_version: Api Version. Default value is "2023-08-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2025-02-01". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ @@ -47,8 +45,7 @@ def __init__( resource_name: str, **kwargs: Any ) -> None: - super(SiteRecoveryManagementClientConfiguration, self).__init__(**kwargs) - api_version: str = kwargs.pop("api_version", "2023-08-01") + api_version: str = kwargs.pop("api_version", "2025-02-01") if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -66,6 +63,7 @@ def __init__( self.api_version = api_version self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"]) kwargs.setdefault("sdk_moniker", "mgmt-recoveryservicessiterecovery/{}".format(VERSION)) + self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) def _configure(self, **kwargs: Any) -> None: @@ -74,9 +72,9 @@ def _configure(self, **kwargs: Any) -> None: self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs) self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs) + self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs) self.authentication_policy = kwargs.get("authentication_policy") if self.credential and not self.authentication_policy: self.authentication_policy = ARMChallengeAuthenticationPolicy( diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_serialization.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_serialization.py index 4bae2292227b..f5187701d7be 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_serialization.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_serialization.py @@ -1,30 +1,12 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines +# coding=utf-8 # -------------------------------------------------------------------------- -# # Copyright (c) Microsoft Corporation. All rights reserved. -# -# The MIT License (MIT) -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the ""Software""), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -# pylint: skip-file # pyright: reportUnnecessaryTypeIgnoreComment=false from base64 import b64decode, b64encode @@ -48,11 +30,8 @@ IO, Mapping, Callable, - TypeVar, MutableMapping, - Type, List, - Mapping, ) try: @@ -62,13 +41,13 @@ import xml.etree.ElementTree as ET import isodate # type: ignore +from typing_extensions import Self -from azure.core.exceptions import DeserializationError, SerializationError, raise_with_traceback -from azure.core.serialization import NULL as AzureCoreNull +from azure.core.exceptions import DeserializationError, SerializationError +from azure.core.serialization import NULL as CoreNull _BOM = codecs.BOM_UTF8.decode(encoding="utf-8") -ModelType = TypeVar("ModelType", bound="Model") JSON = MutableMapping[str, Any] @@ -91,6 +70,8 @@ def deserialize_from_text(cls, data: Optional[Union[AnyStr, IO]], content_type: :param data: Input, could be bytes or stream (will be decoded with UTF8) or text :type data: str or bytes or IO :param str content_type: The content type. + :return: The deserialized data. + :rtype: object """ if hasattr(data, "read"): # Assume a stream @@ -112,7 +93,7 @@ def deserialize_from_text(cls, data: Optional[Union[AnyStr, IO]], content_type: try: return json.loads(data_as_str) except ValueError as err: - raise DeserializationError("JSON is invalid: {}".format(err), err) + raise DeserializationError("JSON is invalid: {}".format(err), err) from err elif "xml" in (content_type or []): try: @@ -124,7 +105,7 @@ def deserialize_from_text(cls, data: Optional[Union[AnyStr, IO]], content_type: pass return ET.fromstring(data_as_str) # nosec - except ET.ParseError: + except ET.ParseError as err: # It might be because the server has an issue, and returned JSON with # content-type XML.... # So let's try a JSON load, and if it's still broken @@ -143,7 +124,9 @@ def _json_attemp(data): # The function hack is because Py2.7 messes up with exception # context otherwise. _LOGGER.critical("Wasn't XML not JSON, failing") - raise_with_traceback(DeserializationError, "XML is invalid") + raise DeserializationError("XML is invalid") from err + elif content_type.startswith("text/"): + return data_as_str raise DeserializationError("Cannot deserialize content-type: {}".format(content_type)) @classmethod @@ -153,6 +136,11 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], Use bytes and headers to NOT use any requests/aiohttp or whatever specific implementation. Headers will tested for "content-type" + + :param bytes body_bytes: The body of the response. + :param dict headers: The headers of the response. + :returns: The deserialized data. + :rtype: object """ # Try to use content-type from headers if available content_type = None @@ -170,13 +158,6 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], return None -try: - basestring # type: ignore - unicode_str = unicode # type: ignore -except NameError: - basestring = str - unicode_str = str - _LOGGER = logging.getLogger(__name__) try: @@ -184,80 +165,31 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], except NameError: _long_type = int - -class UTC(datetime.tzinfo): - """Time Zone info for handling UTC""" - - def utcoffset(self, dt): - """UTF offset for UTC is 0.""" - return datetime.timedelta(0) - - def tzname(self, dt): - """Timestamp representation.""" - return "Z" - - def dst(self, dt): - """No daylight saving for UTC.""" - return datetime.timedelta(hours=1) - - -try: - from datetime import timezone as _FixedOffset # type: ignore -except ImportError: # Python 2.7 - - class _FixedOffset(datetime.tzinfo): # type: ignore - """Fixed offset in minutes east from UTC. - Copy/pasted from Python doc - :param datetime.timedelta offset: offset in timedelta format - """ - - def __init__(self, offset): - self.__offset = offset - - def utcoffset(self, dt): - return self.__offset - - def tzname(self, dt): - return str(self.__offset.total_seconds() / 3600) - - def __repr__(self): - return "".format(self.tzname(None)) - - def dst(self, dt): - return datetime.timedelta(0) - - def __getinitargs__(self): - return (self.__offset,) - - -try: - from datetime import timezone - - TZ_UTC = timezone.utc -except ImportError: - TZ_UTC = UTC() # type: ignore +TZ_UTC = datetime.timezone.utc _FLATTEN = re.compile(r"(? None: - self.additional_properties: Dict[str, Any] = {} - for k in kwargs: + self.additional_properties: Optional[Dict[str, Any]] = {} + for k in kwargs: # pylint: disable=consider-using-dict-items if k not in self._attribute_map: _LOGGER.warning("%s is not a known attribute of class %s and will be ignored", k, self.__class__) elif k in self._validation and self._validation[k].get("readonly", False): @@ -305,13 +244,23 @@ def __init__(self, **kwargs: Any) -> None: setattr(self, k, kwargs[k]) def __eq__(self, other: Any) -> bool: - """Compare objects by comparing all attributes.""" + """Compare objects by comparing all attributes. + + :param object other: The object to compare + :returns: True if objects are equal + :rtype: bool + """ if isinstance(other, self.__class__): return self.__dict__ == other.__dict__ return False def __ne__(self, other: Any) -> bool: - """Compare objects by comparing all attributes.""" + """Compare objects by comparing all attributes. + + :param object other: The object to compare + :returns: True if objects are not equal + :rtype: bool + """ return not self.__eq__(other) def __str__(self) -> str: @@ -331,7 +280,11 @@ def is_xml_model(cls) -> bool: @classmethod def _create_xml_node(cls): - """Create XML node.""" + """Create XML node. + + :returns: The XML node + :rtype: xml.etree.ElementTree.Element + """ try: xml_map = cls._xml_map # type: ignore except AttributeError: @@ -340,7 +293,7 @@ def _create_xml_node(cls): return _create_xml_node(xml_map.get("name", cls.__name__), xml_map.get("prefix", None), xml_map.get("ns", None)) def serialize(self, keep_readonly: bool = False, **kwargs: Any) -> JSON: - """Return the JSON that would be sent to azure from this model. + """Return the JSON that would be sent to server from this model. This is an alias to `as_dict(full_restapi_key_transformer, keep_readonly=False)`. @@ -351,7 +304,9 @@ def serialize(self, keep_readonly: bool = False, **kwargs: Any) -> JSON: :rtype: dict """ serializer = Serializer(self._infer_class_models()) - return serializer._serialize(self, keep_readonly=keep_readonly, **kwargs) + return serializer._serialize( # type: ignore # pylint: disable=protected-access + self, keep_readonly=keep_readonly, **kwargs + ) def as_dict( self, @@ -385,12 +340,15 @@ def my_key_transformer(key, attr_desc, value): If you want XML serialization, you can pass the kwargs is_xml=True. + :param bool keep_readonly: If you want to serialize the readonly attributes :param function key_transformer: A key transformer function. :returns: A dict JSON compatible object :rtype: dict """ serializer = Serializer(self._infer_class_models()) - return serializer._serialize(self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs) + return serializer._serialize( # type: ignore # pylint: disable=protected-access + self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs + ) @classmethod def _infer_class_models(cls): @@ -400,30 +358,31 @@ def _infer_class_models(cls): client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} if cls.__name__ not in client_models: raise ValueError("Not Autorest generated code") - except Exception: + except Exception: # pylint: disable=broad-exception-caught # Assume it's not Autorest generated (tests?). Add ourselves as dependencies. client_models = {cls.__name__: cls} return client_models @classmethod - def deserialize(cls: Type[ModelType], data: Any, content_type: Optional[str] = None) -> ModelType: + def deserialize(cls, data: Any, content_type: Optional[str] = None) -> Self: """Parse a str using the RestAPI syntax and return a model. :param str data: A str using RestAPI structure. JSON by default. :param str content_type: JSON by default, set application/xml if XML. :returns: An instance of this model - :raises: DeserializationError if something went wrong + :raises DeserializationError: if something went wrong + :rtype: Self """ deserializer = Deserializer(cls._infer_class_models()) - return deserializer(cls.__name__, data, content_type=content_type) + return deserializer(cls.__name__, data, content_type=content_type) # type: ignore @classmethod def from_dict( - cls: Type[ModelType], + cls, data: Any, key_extractors: Optional[Callable[[str, Dict[str, Any], Any], Any]] = None, content_type: Optional[str] = None, - ) -> ModelType: + ) -> Self: """Parse a dict using given key extractor return a model. By default consider key @@ -431,9 +390,11 @@ def from_dict( and last_rest_key_case_insensitive_extractor) :param dict data: A dict using RestAPI structure + :param function key_extractors: A key extractor function. :param str content_type: JSON by default, set application/xml if XML. :returns: An instance of this model - :raises: DeserializationError if something went wrong + :raises DeserializationError: if something went wrong + :rtype: Self """ deserializer = Deserializer(cls._infer_class_models()) deserializer.key_extractors = ( # type: ignore @@ -445,7 +406,7 @@ def from_dict( if key_extractors is None else key_extractors ) - return deserializer(cls.__name__, data, content_type=content_type) + return deserializer(cls.__name__, data, content_type=content_type) # type: ignore @classmethod def _flatten_subtype(cls, key, objects): @@ -453,21 +414,25 @@ def _flatten_subtype(cls, key, objects): return {} result = dict(cls._subtype_map[key]) for valuetype in cls._subtype_map[key].values(): - result.update(objects[valuetype]._flatten_subtype(key, objects)) + result.update(objects[valuetype]._flatten_subtype(key, objects)) # pylint: disable=protected-access return result @classmethod def _classify(cls, response, objects): """Check the class _subtype_map for any child classes. We want to ignore any inherited _subtype_maps. - Remove the polymorphic key from the initial data. + + :param dict response: The initial data + :param dict objects: The class objects + :returns: The class to be used + :rtype: class """ for subtype_key in cls.__dict__.get("_subtype_map", {}).keys(): subtype_value = None if not isinstance(response, ET.Element): rest_api_response_key = cls._get_rest_key_parts(subtype_key)[-1] - subtype_value = response.pop(rest_api_response_key, None) or response.pop(subtype_key, None) + subtype_value = response.get(rest_api_response_key, None) or response.get(subtype_key, None) else: subtype_value = xml_key_extractor(subtype_key, cls._attribute_map[subtype_key], response) if subtype_value: @@ -506,11 +471,13 @@ def _decode_attribute_map_key(key): inside the received data. :param str key: A key string from the generated code + :returns: The decoded key + :rtype: str """ return key.replace("\\.", ".") -class Serializer(object): +class Serializer: # pylint: disable=too-many-public-methods """Request object model serializer.""" basic_types = {str: "str", int: "int", bool: "bool", float: "float"} @@ -545,7 +512,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None: self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -561,17 +528,20 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "[]": self.serialize_iter, "{}": self.serialize_dict, } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_transformer = full_restapi_key_transformer self.client_side_validation = True - def _serialize(self, target_obj, data_type=None, **kwargs): + def _serialize( # pylint: disable=too-many-nested-blocks, too-many-branches, too-many-statements, too-many-locals + self, target_obj, data_type=None, **kwargs + ): """Serialize data into a string according to type. - :param target_obj: The data to be serialized. + :param object target_obj: The data to be serialized. :param str data_type: The type to be serialized from. :rtype: str, dict - :raises: SerializationError if serialization fails. + :raises SerializationError: if serialization fails. + :returns: The serialized data. """ key_transformer = kwargs.get("key_transformer", self.key_transformer) keep_readonly = kwargs.get("keep_readonly", False) @@ -597,12 +567,14 @@ def _serialize(self, target_obj, data_type=None, **kwargs): serialized = {} if is_xml_model_serialization: - serialized = target_obj._create_xml_node() + serialized = target_obj._create_xml_node() # pylint: disable=protected-access try: - attributes = target_obj._attribute_map + attributes = target_obj._attribute_map # pylint: disable=protected-access for attr, attr_desc in attributes.items(): attr_name = attr - if not keep_readonly and target_obj._validation.get(attr_name, {}).get("readonly", False): + if not keep_readonly and target_obj._validation.get( # pylint: disable=protected-access + attr_name, {} + ).get("readonly", False): continue if attr_name == "additional_properties" and attr_desc["key"] == "": @@ -638,7 +610,8 @@ def _serialize(self, target_obj, data_type=None, **kwargs): if isinstance(new_attr, list): serialized.extend(new_attr) # type: ignore elif isinstance(new_attr, ET.Element): - # If the down XML has no XML/Name, we MUST replace the tag with the local tag. But keeping the namespaces. + # If the down XML has no XML/Name, + # we MUST replace the tag with the local tag. But keeping the namespaces. if "name" not in getattr(orig_attr, "_xml_map", {}): splitted_tag = new_attr.tag.split("}") if len(splitted_tag) == 2: # Namespace @@ -649,7 +622,7 @@ def _serialize(self, target_obj, data_type=None, **kwargs): else: # That's a basic type # Integrate namespace if necessary local_node = _create_xml_node(xml_name, xml_prefix, xml_ns) - local_node.text = unicode_str(new_attr) + local_node.text = str(new_attr) serialized.append(local_node) # type: ignore else: # JSON for k in reversed(keys): # type: ignore @@ -668,18 +641,18 @@ def _serialize(self, target_obj, data_type=None, **kwargs): except (AttributeError, KeyError, TypeError) as err: msg = "Attribute {} in object {} cannot be serialized.\n{}".format(attr_name, class_name, str(target_obj)) - raise_with_traceback(SerializationError, msg, err) - else: - return serialized + raise SerializationError(msg) from err + return serialized def body(self, data, data_type, **kwargs): """Serialize data intended for a request body. - :param data: The data to be serialized. + :param object data: The data to be serialized. :param str data_type: The type to be serialized from. :rtype: dict - :raises: SerializationError if serialization fails. - :raises: ValueError if data is None + :raises SerializationError: if serialization fails. + :raises ValueError: if data is None + :returns: The serialized request body """ # Just in case this is a dict @@ -708,20 +681,22 @@ def body(self, data, data_type, **kwargs): attribute_key_case_insensitive_extractor, last_rest_key_case_insensitive_extractor, ] - data = deserializer._deserialize(data_type, data) + data = deserializer._deserialize(data_type, data) # pylint: disable=protected-access except DeserializationError as err: - raise_with_traceback(SerializationError, "Unable to build a model: " + str(err), err) + raise SerializationError("Unable to build a model: " + str(err)) from err return self._serialize(data, data_type, **kwargs) def url(self, name, data, data_type, **kwargs): """Serialize data intended for a URL path. - :param data: The data to be serialized. + :param str name: The name of the URL path parameter. + :param object data: The data to be serialized. :param str data_type: The type to be serialized from. :rtype: str - :raises: TypeError if serialization fails. - :raises: ValueError if data is None + :returns: The serialized URL path + :raises TypeError: if serialization fails. + :raises ValueError: if data is None """ try: output = self.serialize_data(data, data_type, **kwargs) @@ -730,30 +705,30 @@ def url(self, name, data, data_type, **kwargs): if kwargs.get("skip_quote") is True: output = str(output) + output = output.replace("{", quote("{")).replace("}", quote("}")) else: output = quote(str(output), safe="") - except SerializationError: - raise TypeError("{} must be type {}.".format(name, data_type)) - else: - return output + except SerializationError as exc: + raise TypeError("{} must be type {}.".format(name, data_type)) from exc + return output def query(self, name, data, data_type, **kwargs): """Serialize data intended for a URL query. - :param data: The data to be serialized. + :param str name: The name of the query parameter. + :param object data: The data to be serialized. :param str data_type: The type to be serialized from. - :keyword bool skip_quote: Whether to skip quote the serialized result. - Defaults to False. - :rtype: str - :raises: TypeError if serialization fails. - :raises: ValueError if data is None + :rtype: str, list + :raises TypeError: if serialization fails. + :raises ValueError: if data is None + :returns: The serialized query parameter """ try: # Treat the list aside, since we don't want to encode the div separator if data_type.startswith("["): internal_data_type = data_type[1:-1] do_quote = not kwargs.get("skip_quote", False) - return str(self.serialize_iter(data, internal_data_type, do_quote=do_quote, **kwargs)) + return self.serialize_iter(data, internal_data_type, do_quote=do_quote, **kwargs) # Not a list, regular serialization output = self.serialize_data(data, data_type, **kwargs) @@ -763,19 +738,20 @@ def query(self, name, data, data_type, **kwargs): output = str(output) else: output = quote(str(output), safe="") - except SerializationError: - raise TypeError("{} must be type {}.".format(name, data_type)) - else: - return str(output) + except SerializationError as exc: + raise TypeError("{} must be type {}.".format(name, data_type)) from exc + return str(output) def header(self, name, data, data_type, **kwargs): """Serialize data intended for a request header. - :param data: The data to be serialized. + :param str name: The name of the header. + :param object data: The data to be serialized. :param str data_type: The type to be serialized from. :rtype: str - :raises: TypeError if serialization fails. - :raises: ValueError if data is None + :raises TypeError: if serialization fails. + :raises ValueError: if data is None + :returns: The serialized header """ try: if data_type in ["[str]"]: @@ -784,32 +760,31 @@ def header(self, name, data, data_type, **kwargs): output = self.serialize_data(data, data_type, **kwargs) if data_type == "bool": output = json.dumps(output) - except SerializationError: - raise TypeError("{} must be type {}.".format(name, data_type)) - else: - return str(output) + except SerializationError as exc: + raise TypeError("{} must be type {}.".format(name, data_type)) from exc + return str(output) def serialize_data(self, data, data_type, **kwargs): """Serialize generic data according to supplied data type. - :param data: The data to be serialized. + :param object data: The data to be serialized. :param str data_type: The type to be serialized from. - :param bool required: Whether it's essential that the data not be - empty or None - :raises: AttributeError if required data is None. - :raises: ValueError if data is None - :raises: SerializationError if serialization fails. + :raises AttributeError: if required data is None. + :raises ValueError: if data is None + :raises SerializationError: if serialization fails. + :returns: The serialized data. + :rtype: str, int, float, bool, dict, list """ if data is None: raise ValueError("No value for given attribute") try: - if data is AzureCoreNull: + if data is CoreNull: return None if data_type in self.basic_types.values(): return self.serialize_basic(data, data_type, **kwargs) - elif data_type in self.serialize_type: + if data_type in self.serialize_type: return self.serialize_type[data_type](data, **kwargs) # If dependencies is empty, try with current data class @@ -824,12 +799,11 @@ def serialize_data(self, data, data_type, **kwargs): except (ValueError, TypeError) as err: msg = "Unable to serialize value: {!r} as type: {!r}." - raise_with_traceback(SerializationError, msg.format(data, data_type), err) - else: - return self._serialize(data, **kwargs) + raise SerializationError(msg.format(data, data_type)) from err + return self._serialize(data, **kwargs) @classmethod - def _get_custom_serializers(cls, data_type, **kwargs): + def _get_custom_serializers(cls, data_type, **kwargs): # pylint: disable=inconsistent-return-statements custom_serializer = kwargs.get("basic_types_serializers", {}).get(data_type) if custom_serializer: return custom_serializer @@ -845,23 +819,26 @@ def serialize_basic(cls, data, data_type, **kwargs): - basic_types_serializers dict[str, callable] : If set, use the callable as serializer - is_xml bool : If set, use xml_basic_types_serializers - :param data: Object to be serialized. + :param obj data: Object to be serialized. :param str data_type: Type of object in the iterable. + :rtype: str, int, float, bool + :return: serialized object """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec + return eval(data_type)(data) # nosec # pylint: disable=eval-used @classmethod def serialize_unicode(cls, data): """Special handling for serializing unicode strings in Py2. Encode to UTF-8 if unicode, otherwise handle as a str. - :param data: Object to be serialized. + :param str data: Object to be serialized. :rtype: str + :return: serialized object """ try: # If I received an enum, return its value return data.value @@ -875,8 +852,7 @@ def serialize_unicode(cls, data): return data except NameError: return str(data) - else: - return str(data) + return str(data) def serialize_iter(self, data, iter_type, div=None, **kwargs): """Serialize iterable. @@ -886,15 +862,13 @@ def serialize_iter(self, data, iter_type, div=None, **kwargs): serialization_ctxt['type'] should be same as data_type. - is_xml bool : If set, serialize as XML - :param list attr: Object to be serialized. + :param list data: Object to be serialized. :param str iter_type: Type of object in the iterable. - :param bool required: Whether the objects in the iterable must - not be None or empty. :param str div: If set, this str will be used to combine the elements in the iterable into a combined string. Default is 'None'. - :keyword bool do_quote: Whether to quote the serialized result of each iterable element. Defaults to False. :rtype: list, str + :return: serialized iterable """ if isinstance(data, str): raise SerializationError("Refuse str type as a valid iter type.") @@ -949,9 +923,8 @@ def serialize_dict(self, attr, dict_type, **kwargs): :param dict attr: Object to be serialized. :param str dict_type: Type of object in the dictionary. - :param bool required: Whether the objects in the dictionary must - not be None or empty. :rtype: dict + :return: serialized dictionary """ serialization_ctxt = kwargs.get("serialization_ctxt", {}) serialized = {} @@ -975,7 +948,7 @@ def serialize_dict(self, attr, dict_type, **kwargs): return serialized - def serialize_object(self, attr, **kwargs): + def serialize_object(self, attr, **kwargs): # pylint: disable=too-many-return-statements """Serialize a generic object. This will be handled as a dictionary. If object passed in is not a basic type (str, int, float, dict, list) it will simply be @@ -983,6 +956,7 @@ def serialize_object(self, attr, **kwargs): :param dict attr: Object to be serialized. :rtype: dict or str + :return: serialized object """ if attr is None: return None @@ -993,7 +967,7 @@ def serialize_object(self, attr, **kwargs): return self.serialize_basic(attr, self.basic_types[obj_type], **kwargs) if obj_type is _long_type: return self.serialize_long(attr) - if obj_type is unicode_str: + if obj_type is str: return self.serialize_unicode(attr) if obj_type is datetime.datetime: return self.serialize_iso(attr) @@ -1007,7 +981,7 @@ def serialize_object(self, attr, **kwargs): return self.serialize_decimal(attr) # If it's a model or I know this dependency, serialize as a Model - elif obj_type in self.dependencies.values() or isinstance(attr, Model): + if obj_type in self.dependencies.values() or isinstance(attr, Model): return self._serialize(attr) if obj_type == dict: @@ -1038,56 +1012,61 @@ def serialize_enum(attr, enum_obj=None): try: enum_obj(result) # type: ignore return result - except ValueError: + except ValueError as exc: for enum_value in enum_obj: # type: ignore if enum_value.value.lower() == str(attr).lower(): return enum_value.value error = "{!r} is not valid value for enum {!r}" - raise SerializationError(error.format(attr, enum_obj)) + raise SerializationError(error.format(attr, enum_obj)) from exc @staticmethod - def serialize_bytearray(attr, **kwargs): + def serialize_bytearray(attr, **kwargs): # pylint: disable=unused-argument """Serialize bytearray into base-64 string. - :param attr: Object to be serialized. + :param str attr: Object to be serialized. :rtype: str + :return: serialized base64 """ return b64encode(attr).decode() @staticmethod - def serialize_base64(attr, **kwargs): + def serialize_base64(attr, **kwargs): # pylint: disable=unused-argument """Serialize str into base-64 string. - :param attr: Object to be serialized. + :param str attr: Object to be serialized. :rtype: str + :return: serialized base64 """ encoded = b64encode(attr).decode("ascii") return encoded.strip("=").replace("+", "-").replace("/", "_") @staticmethod - def serialize_decimal(attr, **kwargs): + def serialize_decimal(attr, **kwargs): # pylint: disable=unused-argument """Serialize Decimal object to float. - :param attr: Object to be serialized. + :param decimal attr: Object to be serialized. :rtype: float + :return: serialized decimal """ return float(attr) @staticmethod - def serialize_long(attr, **kwargs): + def serialize_long(attr, **kwargs): # pylint: disable=unused-argument """Serialize long (Py2) or int (Py3). - :param attr: Object to be serialized. + :param int attr: Object to be serialized. :rtype: int/long + :return: serialized long """ return _long_type(attr) @staticmethod - def serialize_date(attr, **kwargs): + def serialize_date(attr, **kwargs): # pylint: disable=unused-argument """Serialize Date object into ISO-8601 formatted string. :param Date attr: Object to be serialized. :rtype: str + :return: serialized date """ if isinstance(attr, str): attr = isodate.parse_date(attr) @@ -1095,11 +1074,12 @@ def serialize_date(attr, **kwargs): return t @staticmethod - def serialize_time(attr, **kwargs): + def serialize_time(attr, **kwargs): # pylint: disable=unused-argument """Serialize Time object into ISO-8601 formatted string. :param datetime.time attr: Object to be serialized. :rtype: str + :return: serialized time """ if isinstance(attr, str): attr = isodate.parse_time(attr) @@ -1109,30 +1089,32 @@ def serialize_time(attr, **kwargs): return t @staticmethod - def serialize_duration(attr, **kwargs): + def serialize_duration(attr, **kwargs): # pylint: disable=unused-argument """Serialize TimeDelta object into ISO-8601 formatted string. :param TimeDelta attr: Object to be serialized. :rtype: str + :return: serialized duration """ if isinstance(attr, str): attr = isodate.parse_duration(attr) return isodate.duration_isoformat(attr) @staticmethod - def serialize_rfc(attr, **kwargs): + def serialize_rfc(attr, **kwargs): # pylint: disable=unused-argument """Serialize Datetime object into RFC-1123 formatted string. :param Datetime attr: Object to be serialized. :rtype: str - :raises: TypeError if format invalid. + :raises TypeError: if format invalid. + :return: serialized rfc """ try: if not attr.tzinfo: _LOGGER.warning("Datetime with no tzinfo will be considered UTC.") utc = attr.utctimetuple() - except AttributeError: - raise TypeError("RFC1123 object must be valid Datetime object.") + except AttributeError as exc: + raise TypeError("RFC1123 object must be valid Datetime object.") from exc return "{}, {:02} {} {:04} {:02}:{:02}:{:02} GMT".format( Serializer.days[utc.tm_wday], @@ -1145,12 +1127,13 @@ def serialize_rfc(attr, **kwargs): ) @staticmethod - def serialize_iso(attr, **kwargs): + def serialize_iso(attr, **kwargs): # pylint: disable=unused-argument """Serialize Datetime object into ISO-8601 formatted string. :param Datetime attr: Object to be serialized. :rtype: str - :raises: SerializationError if format invalid. + :raises SerializationError: if format invalid. + :return: serialized iso """ if isinstance(attr, str): attr = isodate.parse_datetime(attr) @@ -1170,19 +1153,20 @@ def serialize_iso(attr, **kwargs): return date + microseconds + "Z" except (ValueError, OverflowError) as err: msg = "Unable to serialize datetime object." - raise_with_traceback(SerializationError, msg, err) + raise SerializationError(msg) from err except AttributeError as err: msg = "ISO-8601 object must be valid Datetime object." - raise_with_traceback(TypeError, msg, err) + raise TypeError(msg) from err @staticmethod - def serialize_unix(attr, **kwargs): + def serialize_unix(attr, **kwargs): # pylint: disable=unused-argument """Serialize Datetime object into IntTime format. This is represented as seconds. :param Datetime attr: Object to be serialized. :rtype: int - :raises: SerializationError if format invalid + :raises SerializationError: if format invalid + :return: serialied unix """ if isinstance(attr, int): return attr @@ -1190,11 +1174,11 @@ def serialize_unix(attr, **kwargs): if not attr.tzinfo: _LOGGER.warning("Datetime with no tzinfo will be considered UTC.") return int(calendar.timegm(attr.utctimetuple())) - except AttributeError: - raise TypeError("Unix time object must be valid Datetime object.") + except AttributeError as exc: + raise TypeError("Unix time object must be valid Datetime object.") from exc -def rest_key_extractor(attr, attr_desc, data): +def rest_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument key = attr_desc["key"] working_data = data @@ -1209,14 +1193,15 @@ def rest_key_extractor(attr, attr_desc, data): if working_data is None: # If at any point while following flatten JSON path see None, it means # that all properties under are None as well - # https://github.com/Azure/msrest-for-python/issues/197 return None key = ".".join(dict_keys[1:]) return working_data.get(key) -def rest_key_case_insensitive_extractor(attr, attr_desc, data): +def rest_key_case_insensitive_extractor( # pylint: disable=unused-argument, inconsistent-return-statements + attr, attr_desc, data +): key = attr_desc["key"] working_data = data @@ -1230,7 +1215,6 @@ def rest_key_case_insensitive_extractor(attr, attr_desc, data): if working_data is None: # If at any point while following flatten JSON path see None, it means # that all properties under are None as well - # https://github.com/Azure/msrest-for-python/issues/197 return None key = ".".join(dict_keys[1:]) @@ -1238,17 +1222,29 @@ def rest_key_case_insensitive_extractor(attr, attr_desc, data): return attribute_key_case_insensitive_extractor(key, None, working_data) -def last_rest_key_extractor(attr, attr_desc, data): - """Extract the attribute in "data" based on the last part of the JSON path key.""" +def last_rest_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument + """Extract the attribute in "data" based on the last part of the JSON path key. + + :param str attr: The attribute to extract + :param dict attr_desc: The attribute description + :param dict data: The data to extract from + :rtype: object + :returns: The extracted attribute + """ key = attr_desc["key"] dict_keys = _FLATTEN.split(key) return attribute_key_extractor(dict_keys[-1], None, data) -def last_rest_key_case_insensitive_extractor(attr, attr_desc, data): +def last_rest_key_case_insensitive_extractor(attr, attr_desc, data): # pylint: disable=unused-argument """Extract the attribute in "data" based on the last part of the JSON path key. This is the case insensitive version of "last_rest_key_extractor" + :param str attr: The attribute to extract + :param dict attr_desc: The attribute description + :param dict data: The data to extract from + :rtype: object + :returns: The extracted attribute """ key = attr_desc["key"] dict_keys = _FLATTEN.split(key) @@ -1285,7 +1281,7 @@ def _extract_name_from_internal_type(internal_type): return xml_name -def xml_key_extractor(attr, attr_desc, data): +def xml_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument,too-many-return-statements if isinstance(data, dict): return None @@ -1337,22 +1333,21 @@ def xml_key_extractor(attr, attr_desc, data): if is_iter_type: if is_wrapped: return None # is_wrapped no node, we want None - else: - return [] # not wrapped, assume empty list + return [] # not wrapped, assume empty list return None # Assume it's not there, maybe an optional node. # If is_iter_type and not wrapped, return all found children if is_iter_type: if not is_wrapped: return children - else: # Iter and wrapped, should have found one node only (the wrap one) - if len(children) != 1: - raise DeserializationError( - "Tried to deserialize an array not wrapped, and found several nodes '{}'. Maybe you should declare this array as wrapped?".format( - xml_name - ) + # Iter and wrapped, should have found one node only (the wrap one) + if len(children) != 1: + raise DeserializationError( + "Tried to deserialize an array not wrapped, and found several nodes '{}'. Maybe you should declare this array as wrapped?".format( + xml_name ) - return list(children[0]) # Might be empty list and that's ok. + ) + return list(children[0]) # Might be empty list and that's ok. # Here it's not a itertype, we should have found one element only or empty if len(children) > 1: @@ -1360,7 +1355,7 @@ def xml_key_extractor(attr, attr_desc, data): return children[0] -class Deserializer(object): +class Deserializer: """Response object model deserializer. :param dict classes: Class type dictionary for deserializing complex types. @@ -1369,9 +1364,9 @@ class Deserializer(object): basic_types = {str: "str", int: "int", bool: "bool", float: "float"} - valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?") + valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?") - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None: self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1391,7 +1386,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "duration": (isodate.Duration, datetime.timedelta), "iso-8601": (datetime.datetime), } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_extractors = [rest_key_extractor, xml_key_extractor] # Additional properties only works if the "rest_key_extractor" is used to # extract the keys. Making it to work whatever the key extractor is too much @@ -1407,27 +1402,29 @@ def __call__(self, target_obj, response_data, content_type=None): :param str target_obj: Target data type to deserialize to. :param requests.Response response_data: REST response object. :param str content_type: Swagger "produces" if available. - :raises: DeserializationError if deserialization fails. + :raises DeserializationError: if deserialization fails. :return: Deserialized object. + :rtype: object """ data = self._unpack_content(response_data, content_type) return self._deserialize(target_obj, data) - def _deserialize(self, target_obj, data): + def _deserialize(self, target_obj, data): # pylint: disable=inconsistent-return-statements """Call the deserializer on a model. Data needs to be already deserialized as JSON or XML ElementTree :param str target_obj: Target data type to deserialize to. :param object data: Object to deserialize. - :raises: DeserializationError if deserialization fails. + :raises DeserializationError: if deserialization fails. :return: Deserialized object. + :rtype: object """ # This is already a model, go recursive just in case if hasattr(data, "_attribute_map"): constants = [name for name, config in getattr(data, "_validation", {}).items() if config.get("constant")] try: - for attr, mapconfig in data._attribute_map.items(): + for attr, mapconfig in data._attribute_map.items(): # pylint: disable=protected-access if attr in constants: continue value = getattr(data, attr) @@ -1444,15 +1441,15 @@ def _deserialize(self, target_obj, data): response, class_name = self._classify_target(target_obj, data) - if isinstance(response, basestring): + if isinstance(response, str): return self.deserialize_data(data, response) - elif isinstance(response, type) and issubclass(response, Enum): + if isinstance(response, type) and issubclass(response, Enum): return self.deserialize_enum(data, response) - if data is None: + if data is None or data is CoreNull: return data try: - attributes = response._attribute_map # type: ignore + attributes = response._attribute_map # type: ignore # pylint: disable=protected-access d_attrs = {} for attr, attr_desc in attributes.items(): # Check empty string. If it's not empty, someone has a real "additionalProperties"... @@ -1481,10 +1478,9 @@ def _deserialize(self, target_obj, data): d_attrs[attr] = value except (AttributeError, TypeError, KeyError) as err: msg = "Unable to deserialize to object: " + class_name # type: ignore - raise_with_traceback(DeserializationError, msg, err) - else: - additional_properties = self._build_additional_properties(attributes, data) - return self._instantiate_model(response, d_attrs, additional_properties) + raise DeserializationError(msg) from err + additional_properties = self._build_additional_properties(attributes, data) + return self._instantiate_model(response, d_attrs, additional_properties) def _build_additional_properties(self, attribute_map, data): if not self.additional_properties_detection: @@ -1511,18 +1507,20 @@ def _classify_target(self, target, data): :param str target: The target object type to deserialize to. :param str/dict data: The response data to deserialize. + :return: The classified target object and its class name. + :rtype: tuple """ if target is None: return None, None - if isinstance(target, basestring): + if isinstance(target, str): try: target = self.dependencies[target] except KeyError: return target, target try: - target = target._classify(data, self.dependencies) + target = target._classify(data, self.dependencies) # type: ignore # pylint: disable=protected-access except AttributeError: pass # Target is not a Model, no classify return target, target.__class__.__name__ # type: ignore @@ -1537,10 +1535,12 @@ def failsafe_deserialize(self, target_obj, data, content_type=None): :param str target_obj: The target object type to deserialize to. :param str/dict data: The response data to deserialize. :param str content_type: Swagger "produces" if available. + :return: Deserialized object. + :rtype: object """ try: return self(target_obj, data, content_type=content_type) - except: + except: # pylint: disable=bare-except _LOGGER.debug( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) @@ -1558,10 +1558,12 @@ def _unpack_content(raw_data, content_type=None): If raw_data is something else, bypass all logic and return it directly. - :param raw_data: Data to be processed. - :param content_type: How to parse if raw_data is a string/bytes. + :param obj raw_data: Data to be processed. + :param str content_type: How to parse if raw_data is a string/bytes. :raises JSONDecodeError: If JSON is requested and parsing is impossible. :raises UnicodeDecodeError: If bytes is not UTF8 + :rtype: object + :return: Unpacked content. """ # Assume this is enough to detect a Pipeline Response without importing it context = getattr(raw_data, "context", {}) @@ -1578,31 +1580,42 @@ def _unpack_content(raw_data, content_type=None): if hasattr(raw_data, "_content_consumed"): return RawDeserializer.deserialize_from_http_generics(raw_data.text, raw_data.headers) - if isinstance(raw_data, (basestring, bytes)) or hasattr(raw_data, "read"): + if isinstance(raw_data, (str, bytes)) or hasattr(raw_data, "read"): return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore return raw_data def _instantiate_model(self, response, attrs, additional_properties=None): """Instantiate a response model passing in deserialized args. - :param response: The response model class. - :param d_attrs: The deserialized response attributes. + :param Response response: The response model class. + :param dict attrs: The deserialized response attributes. + :param dict additional_properties: Additional properties to be set. + :rtype: Response + :return: The instantiated response model. """ if callable(response): subtype = getattr(response, "_subtype_map", {}) try: - readonly = [k for k, v in response._validation.items() if v.get("readonly")] - const = [k for k, v in response._validation.items() if v.get("constant")] + readonly = [ + k + for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore + if v.get("readonly") + ] + const = [ + k + for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore + if v.get("constant") + ] kwargs = {k: v for k, v in attrs.items() if k not in subtype and k not in readonly + const} response_obj = response(**kwargs) for attr in readonly: setattr(response_obj, attr, attrs.get(attr)) if additional_properties: - response_obj.additional_properties = additional_properties + response_obj.additional_properties = additional_properties # type: ignore return response_obj except TypeError as err: msg = "Unable to deserialize {} into model {}. ".format(kwargs, response) # type: ignore - raise DeserializationError(msg + str(err)) + raise DeserializationError(msg + str(err)) from err else: try: for attr, value in attrs.items(): @@ -1611,15 +1624,16 @@ def _instantiate_model(self, response, attrs, additional_properties=None): except Exception as exp: msg = "Unable to populate response model. " msg += "Type: {}, Error: {}".format(type(response), exp) - raise DeserializationError(msg) + raise DeserializationError(msg) from exp - def deserialize_data(self, data, data_type): + def deserialize_data(self, data, data_type): # pylint: disable=too-many-return-statements """Process data for deserialization according to data type. :param str data: The response string to be deserialized. :param str data_type: The type to deserialize to. - :raises: DeserializationError if deserialization fails. + :raises DeserializationError: if deserialization fails. :return: Deserialized object. + :rtype: object """ if data is None: return data @@ -1633,7 +1647,11 @@ def deserialize_data(self, data, data_type): if isinstance(data, self.deserialize_expected_types.get(data_type, tuple())): return data - is_a_text_parsing_type = lambda x: x not in ["object", "[]", r"{}"] + is_a_text_parsing_type = lambda x: x not in [ # pylint: disable=unnecessary-lambda-assignment + "object", + "[]", + r"{}", + ] if isinstance(data, ET.Element) and is_a_text_parsing_type(data_type) and not data.text: return None data_val = self.deserialize_type[data_type](data) @@ -1652,15 +1670,15 @@ def deserialize_data(self, data, data_type): except (ValueError, TypeError, AttributeError) as err: msg = "Unable to deserialize response data." msg += " Data: {}, {}".format(data, data_type) - raise_with_traceback(DeserializationError, msg, err) - else: - return self._deserialize(obj_type, data) + raise DeserializationError(msg) from err + return self._deserialize(obj_type, data) def deserialize_iter(self, attr, iter_type): """Deserialize an iterable. :param list attr: Iterable to be deserialized. :param str iter_type: The type of object in the iterable. + :return: Deserialized iterable. :rtype: list """ if attr is None: @@ -1677,6 +1695,7 @@ def deserialize_dict(self, attr, dict_type): :param dict/list attr: Dictionary to be deserialized. Also accepts a list of key, value pairs. :param str dict_type: The object type of the items in the dictionary. + :return: Deserialized dictionary. :rtype: dict """ if isinstance(attr, list): @@ -1687,20 +1706,21 @@ def deserialize_dict(self, attr, dict_type): attr = {el.tag: el.text for el in attr} return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()} - def deserialize_object(self, attr, **kwargs): + def deserialize_object(self, attr, **kwargs): # pylint: disable=too-many-return-statements """Deserialize a generic object. This will be handled as a dictionary. :param dict attr: Dictionary to be deserialized. + :return: Deserialized object. :rtype: dict - :raises: TypeError if non-builtin datatype encountered. + :raises TypeError: if non-builtin datatype encountered. """ if attr is None: return None if isinstance(attr, ET.Element): # Do no recurse on XML, just return the tree as-is return attr - if isinstance(attr, basestring): + if isinstance(attr, str): return self.deserialize_basic(attr, "str") obj_type = type(attr) if obj_type in self.basic_types: @@ -1726,11 +1746,10 @@ def deserialize_object(self, attr, **kwargs): pass return deserialized - else: - error = "Cannot deserialize generic object with type: " - raise TypeError(error + str(obj_type)) + error = "Cannot deserialize generic object with type: " + raise TypeError(error + str(obj_type)) - def deserialize_basic(self, attr, data_type): + def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return-statements """Deserialize basic builtin data type from string. Will attempt to convert to str, int, float and bool. This function will also accept '1', '0', 'true' and 'false' as @@ -1738,8 +1757,9 @@ def deserialize_basic(self, attr, data_type): :param str attr: response string to be deserialized. :param str data_type: deserialization data type. + :return: Deserialized basic type. :rtype: str, int, float or bool - :raises: TypeError if string format is not valid. + :raises TypeError: if string format is not valid. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1749,24 +1769,23 @@ def deserialize_basic(self, attr, data_type): if data_type == "str": # None or '', node is empty string. return "" - else: - # None or '', node with a strong type is None. - # Don't try to model "empty bool" or "empty int" - return None + # None or '', node with a strong type is None. + # Don't try to model "empty bool" or "empty int" + return None if data_type == "bool": if attr in [True, False, 1, 0]: return bool(attr) - elif isinstance(attr, basestring): + if isinstance(attr, str): if attr.lower() in ["true", "1"]: return True - elif attr.lower() in ["false", "0"]: + if attr.lower() in ["false", "0"]: return False raise TypeError("Invalid boolean value: {}".format(attr)) if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec + return eval(data_type)(attr) # nosec # pylint: disable=eval-used @staticmethod def deserialize_unicode(data): @@ -1774,6 +1793,7 @@ def deserialize_unicode(data): as a string. :param str data: response string to be deserialized. + :return: Deserialized string. :rtype: str or unicode """ # We might be here because we have an enum modeled as string, @@ -1787,8 +1807,7 @@ def deserialize_unicode(data): return data except NameError: return str(data) - else: - return str(data) + return str(data) @staticmethod def deserialize_enum(data, enum_obj): @@ -1800,6 +1819,7 @@ def deserialize_enum(data, enum_obj): :param str data: Response string to be deserialized. If this value is None or invalid it will be returned as-is. :param Enum enum_obj: Enum object to deserialize to. + :return: Deserialized enum object. :rtype: Enum """ if isinstance(data, enum_obj) or data is None: @@ -1808,12 +1828,11 @@ def deserialize_enum(data, enum_obj): data = data.value if isinstance(data, int): # Workaround. We might consider remove it in the future. - # https://github.com/Azure/azure-rest-api-specs/issues/141 try: return list(enum_obj.__members__.values())[data] - except IndexError: + except IndexError as exc: error = "{!r} is not a valid index for enum {!r}" - raise DeserializationError(error.format(data, enum_obj)) + raise DeserializationError(error.format(data, enum_obj)) from exc try: return enum_obj(str(data)) except ValueError: @@ -1829,8 +1848,9 @@ def deserialize_bytearray(attr): """Deserialize string into bytearray. :param str attr: response string to be deserialized. + :return: Deserialized bytearray :rtype: bytearray - :raises: TypeError if string format invalid. + :raises TypeError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text @@ -1841,8 +1861,9 @@ def deserialize_base64(attr): """Deserialize base64 encoded string into string. :param str attr: response string to be deserialized. + :return: Deserialized base64 string :rtype: bytearray - :raises: TypeError if string format invalid. + :raises TypeError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text @@ -1856,24 +1877,26 @@ def deserialize_decimal(attr): """Deserialize string into Decimal object. :param str attr: response string to be deserialized. - :rtype: Decimal - :raises: DeserializationError if string format invalid. + :return: Deserialized decimal + :raises DeserializationError: if string format invalid. + :rtype: decimal """ if isinstance(attr, ET.Element): attr = attr.text try: - return decimal.Decimal(attr) # type: ignore + return decimal.Decimal(str(attr)) # type: ignore except decimal.DecimalException as err: msg = "Invalid decimal {}".format(attr) - raise_with_traceback(DeserializationError, msg, err) + raise DeserializationError(msg) from err @staticmethod def deserialize_long(attr): """Deserialize string into long (Py2) or int (Py3). :param str attr: response string to be deserialized. + :return: Deserialized int :rtype: long or int - :raises: ValueError if string format invalid. + :raises ValueError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text @@ -1884,8 +1907,9 @@ def deserialize_duration(attr): """Deserialize ISO-8601 formatted string into TimeDelta object. :param str attr: response string to be deserialized. + :return: Deserialized duration :rtype: TimeDelta - :raises: DeserializationError if string format invalid. + :raises DeserializationError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text @@ -1893,32 +1917,33 @@ def deserialize_duration(attr): duration = isodate.parse_duration(attr) except (ValueError, OverflowError, AttributeError) as err: msg = "Cannot deserialize duration object." - raise_with_traceback(DeserializationError, msg, err) - else: - return duration + raise DeserializationError(msg) from err + return duration @staticmethod def deserialize_date(attr): """Deserialize ISO-8601 formatted string into Date object. :param str attr: response string to be deserialized. + :return: Deserialized date :rtype: Date - :raises: DeserializationError if string format invalid. + :raises DeserializationError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text if re.search(r"[^\W\d_]", attr, re.I + re.U): # type: ignore raise DeserializationError("Date must have only digits and -. Received: %s" % attr) # This must NOT use defaultmonth/defaultday. Using None ensure this raises an exception. - return isodate.parse_date(attr, defaultmonth=None, defaultday=None) + return isodate.parse_date(attr, defaultmonth=0, defaultday=0) @staticmethod def deserialize_time(attr): """Deserialize ISO-8601 formatted string into time object. :param str attr: response string to be deserialized. + :return: Deserialized time :rtype: datetime.time - :raises: DeserializationError if string format invalid. + :raises DeserializationError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text @@ -1931,31 +1956,32 @@ def deserialize_rfc(attr): """Deserialize RFC-1123 formatted string into Datetime object. :param str attr: response string to be deserialized. + :return: Deserialized RFC datetime :rtype: Datetime - :raises: DeserializationError if string format invalid. + :raises DeserializationError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text try: parsed_date = email.utils.parsedate_tz(attr) # type: ignore date_obj = datetime.datetime( - *parsed_date[:6], tzinfo=_FixedOffset(datetime.timedelta(minutes=(parsed_date[9] or 0) / 60)) + *parsed_date[:6], tzinfo=datetime.timezone(datetime.timedelta(minutes=(parsed_date[9] or 0) / 60)) ) if not date_obj.tzinfo: date_obj = date_obj.astimezone(tz=TZ_UTC) except ValueError as err: msg = "Cannot deserialize to rfc datetime object." - raise_with_traceback(DeserializationError, msg, err) - else: - return date_obj + raise DeserializationError(msg) from err + return date_obj @staticmethod def deserialize_iso(attr): """Deserialize ISO-8601 formatted string into Datetime object. :param str attr: response string to be deserialized. + :return: Deserialized ISO datetime :rtype: Datetime - :raises: DeserializationError if string format invalid. + :raises DeserializationError: if string format invalid. """ if isinstance(attr, ET.Element): attr = attr.text @@ -1982,9 +2008,8 @@ def deserialize_iso(attr): raise OverflowError("Hit max or min date") except (ValueError, OverflowError, AttributeError) as err: msg = "Cannot deserialize datetime object." - raise_with_traceback(DeserializationError, msg, err) - else: - return date_obj + raise DeserializationError(msg) from err + return date_obj @staticmethod def deserialize_unix(attr): @@ -1992,15 +2017,16 @@ def deserialize_unix(attr): This is represented as seconds. :param int attr: Object to be serialized. + :return: Deserialized datetime :rtype: Datetime - :raises: DeserializationError if format invalid + :raises DeserializationError: if format invalid """ if isinstance(attr, ET.Element): attr = int(attr.text) # type: ignore try: + attr = int(attr) date_obj = datetime.datetime.fromtimestamp(attr, TZ_UTC) except ValueError as err: msg = "Cannot deserialize to unix datetime object." - raise_with_traceback(DeserializationError, msg, err) - else: - return date_obj + raise DeserializationError(msg) from err + return date_obj diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_site_recovery_management_client.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_site_recovery_management_client.py index 0b8b27fb7f7b..1154f58baecb 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_site_recovery_management_client.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_site_recovery_management_client.py @@ -7,15 +7,22 @@ # -------------------------------------------------------------------------- from copy import deepcopy -from typing import Any, TYPE_CHECKING +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 +from azure.core.settings import settings from azure.mgmt.core import ARMPipelineClient +from azure.mgmt.core.policies import ARMAutoResourceProviderRegistrationPolicy +from azure.mgmt.core.tools import get_arm_endpoints from . import models as _models from ._configuration import SiteRecoveryManagementClientConfiguration from ._serialization import Deserializer, Serializer from .operations import ( + ClusterRecoveryPointOperations, + ClusterRecoveryPointsOperations, MigrationRecoveryPointsOperations, Operations, RecoveryPointsOperations, @@ -32,6 +39,7 @@ ReplicationPoliciesOperations, ReplicationProtectableItemsOperations, ReplicationProtectedItemsOperations, + ReplicationProtectionClustersOperations, ReplicationProtectionContainerMappingsOperations, ReplicationProtectionContainersOperations, ReplicationProtectionIntentsOperations, @@ -47,11 +55,10 @@ ) if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials import TokenCredential -class SiteRecoveryManagementClient: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes +class SiteRecoveryManagementClient: # pylint: disable=too-many-instance-attributes """SiteRecoveryManagementClient. :ivar operations: Operations operations @@ -101,6 +108,15 @@ class SiteRecoveryManagementClient: # pylint: disable=client-accepts-api-versio :ivar target_compute_sizes: TargetComputeSizesOperations operations :vartype target_compute_sizes: azure.mgmt.recoveryservicessiterecovery.operations.TargetComputeSizesOperations + :ivar replication_protection_clusters: ReplicationProtectionClustersOperations operations + :vartype replication_protection_clusters: + azure.mgmt.recoveryservicessiterecovery.operations.ReplicationProtectionClustersOperations + :ivar cluster_recovery_points: ClusterRecoveryPointsOperations operations + :vartype cluster_recovery_points: + azure.mgmt.recoveryservicessiterecovery.operations.ClusterRecoveryPointsOperations + :ivar cluster_recovery_point: ClusterRecoveryPointOperations operations + :vartype cluster_recovery_point: + azure.mgmt.recoveryservicessiterecovery.operations.ClusterRecoveryPointOperations :ivar replication_protection_container_mappings: ReplicationProtectionContainerMappingsOperations operations :vartype replication_protection_container_mappings: @@ -150,9 +166,9 @@ class SiteRecoveryManagementClient: # pylint: disable=client-accepts-api-versio :type resource_group_name: str :param resource_name: The name of the recovery services vault. Required. :type resource_name: str - :param base_url: Service URL. Default value is "https://management.azure.com". + :param base_url: Service URL. Default value is None. :type base_url: str - :keyword api_version: Api Version. Default value is "2023-08-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2025-02-01". 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 @@ -165,17 +181,42 @@ def __init__( subscription_id: str, resource_group_name: str, resource_name: str, - base_url: str = "https://management.azure.com", + base_url: Optional[str] = None, **kwargs: Any ) -> None: + _cloud = kwargs.pop("cloud_setting", None) or settings.current.azure_cloud # type: ignore + _endpoints = get_arm_endpoints(_cloud) + if not base_url: + base_url = _endpoints["resource_manager"] + credential_scopes = kwargs.pop("credential_scopes", _endpoints["credential_scopes"]) self._config = SiteRecoveryManagementClientConfiguration( credential=credential, subscription_id=subscription_id, resource_group_name=resource_group_name, resource_name=resource_name, + credential_scopes=credential_scopes, **kwargs ) - self._client: ARMPipelineClient = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + _policies = kwargs.pop("policies", None) + if _policies is None: + _policies = [ + policies.RequestIdPolicy(**kwargs), + self._config.headers_policy, + self._config.user_agent_policy, + self._config.proxy_policy, + policies.ContentDecodePolicy(**kwargs), + ARMAutoResourceProviderRegistrationPolicy(), + self._config.redirect_policy, + self._config.retry_policy, + self._config.authentication_policy, + self._config.custom_hook_policy, + self._config.logging_policy, + policies.DistributedTracingPolicy(**kwargs), + policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None, + self._config.http_logging_policy, + ] + self._client: ARMPipelineClient = ARMPipelineClient(base_url=cast(str, base_url), policies=_policies, **kwargs) client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) @@ -225,6 +266,15 @@ def __init__( self.target_compute_sizes = TargetComputeSizesOperations( self._client, self._config, self._serialize, self._deserialize ) + self.replication_protection_clusters = ReplicationProtectionClustersOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.cluster_recovery_points = ClusterRecoveryPointsOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.cluster_recovery_point = ClusterRecoveryPointOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.replication_protection_container_mappings = ReplicationProtectionContainerMappingsOperations( self._client, self._config, self._serialize, self._deserialize ) @@ -262,7 +312,7 @@ def __init__( self._client, self._config, self._serialize, self._deserialize ) - def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse: + def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse: """Runs the network request through the client's chained policies. >>> from azure.core.rest import HttpRequest @@ -282,12 +332,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse: request_copy = deepcopy(request) request_copy.url = self._client.format_url(request_copy.url) - return self._client.send_request(request_copy, **kwargs) + return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore def close(self) -> None: self._client.close() - def __enter__(self) -> "SiteRecoveryManagementClient": + def __enter__(self) -> Self: self._client.__enter__() return self diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_vendor.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_vendor.py deleted file mode 100644 index 0dafe0e287ff..000000000000 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/_vendor.py +++ /dev/null @@ -1,16 +0,0 @@ -# -------------------------------------------------------------------------- -# 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) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.core.pipeline.transport import HttpRequest - - -def _convert_request(request, files=None): - data = request.content if not files else None - request = HttpRequest(method=request.method, url=request.url, headers=request.headers, data=data) - if files: - request.set_formdata_body(files) - return request diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/__init__.py index eb681300ab9c..abc9bca4dd51 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/__init__.py @@ -5,12 +5,18 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position -from ._site_recovery_management_client import SiteRecoveryManagementClient +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._site_recovery_management_client import SiteRecoveryManagementClient # type: ignore try: from ._patch import __all__ as _patch_all - from ._patch import * # pylint: disable=unused-wildcard-import + from ._patch import * except ImportError: _patch_all = [] from ._patch import patch_sdk as _patch_sdk @@ -18,6 +24,6 @@ __all__ = [ "SiteRecoveryManagementClient", ] -__all__.extend([p for p in _patch_all if p not in __all__]) +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore _patch_sdk() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_configuration.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_configuration.py index 3ce24ec64b8d..1ea6c99a8ba6 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_configuration.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_configuration.py @@ -8,18 +8,16 @@ from typing import Any, TYPE_CHECKING -from azure.core.configuration import Configuration from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy, AsyncARMChallengeAuthenticationPolicy from .._version import VERSION if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials_async import AsyncTokenCredential -class SiteRecoveryManagementClientConfiguration(Configuration): # pylint: disable=too-many-instance-attributes +class SiteRecoveryManagementClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long """Configuration for SiteRecoveryManagementClient. Note that all parameters used to create this instance are saved as instance @@ -34,7 +32,7 @@ class SiteRecoveryManagementClientConfiguration(Configuration): # pylint: disab :type resource_group_name: str :param resource_name: The name of the recovery services vault. Required. :type resource_name: str - :keyword api_version: Api Version. Default value is "2023-08-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2025-02-01". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ @@ -47,8 +45,7 @@ def __init__( resource_name: str, **kwargs: Any ) -> None: - super(SiteRecoveryManagementClientConfiguration, self).__init__(**kwargs) - api_version: str = kwargs.pop("api_version", "2023-08-01") + api_version: str = kwargs.pop("api_version", "2025-02-01") if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -66,6 +63,7 @@ def __init__( self.api_version = api_version self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"]) kwargs.setdefault("sdk_moniker", "mgmt-recoveryservicessiterecovery/{}".format(VERSION)) + self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) def _configure(self, **kwargs: Any) -> None: @@ -74,9 +72,9 @@ def _configure(self, **kwargs: Any) -> None: self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs) self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get("redirect_policy") or policies.AsyncRedirectPolicy(**kwargs) + self.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy(**kwargs) self.authentication_policy = kwargs.get("authentication_policy") if self.credential and not self.authentication_policy: self.authentication_policy = AsyncARMChallengeAuthenticationPolicy( diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_site_recovery_management_client.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_site_recovery_management_client.py index f9b44a3adb18..dc2bac23fb30 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_site_recovery_management_client.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/_site_recovery_management_client.py @@ -7,15 +7,22 @@ # -------------------------------------------------------------------------- from copy import deepcopy -from typing import Any, Awaitable, TYPE_CHECKING +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 +from azure.core.settings import settings from azure.mgmt.core import AsyncARMPipelineClient +from azure.mgmt.core.policies import AsyncARMAutoResourceProviderRegistrationPolicy +from azure.mgmt.core.tools import get_arm_endpoints from .. import models as _models from .._serialization import Deserializer, Serializer from ._configuration import SiteRecoveryManagementClientConfiguration from .operations import ( + ClusterRecoveryPointOperations, + ClusterRecoveryPointsOperations, MigrationRecoveryPointsOperations, Operations, RecoveryPointsOperations, @@ -32,6 +39,7 @@ ReplicationPoliciesOperations, ReplicationProtectableItemsOperations, ReplicationProtectedItemsOperations, + ReplicationProtectionClustersOperations, ReplicationProtectionContainerMappingsOperations, ReplicationProtectionContainersOperations, ReplicationProtectionIntentsOperations, @@ -47,11 +55,10 @@ ) if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials_async import AsyncTokenCredential -class SiteRecoveryManagementClient: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes +class SiteRecoveryManagementClient: # pylint: disable=too-many-instance-attributes """SiteRecoveryManagementClient. :ivar operations: Operations operations @@ -101,6 +108,15 @@ class SiteRecoveryManagementClient: # pylint: disable=client-accepts-api-versio :ivar target_compute_sizes: TargetComputeSizesOperations operations :vartype target_compute_sizes: azure.mgmt.recoveryservicessiterecovery.aio.operations.TargetComputeSizesOperations + :ivar replication_protection_clusters: ReplicationProtectionClustersOperations operations + :vartype replication_protection_clusters: + azure.mgmt.recoveryservicessiterecovery.aio.operations.ReplicationProtectionClustersOperations + :ivar cluster_recovery_points: ClusterRecoveryPointsOperations operations + :vartype cluster_recovery_points: + azure.mgmt.recoveryservicessiterecovery.aio.operations.ClusterRecoveryPointsOperations + :ivar cluster_recovery_point: ClusterRecoveryPointOperations operations + :vartype cluster_recovery_point: + azure.mgmt.recoveryservicessiterecovery.aio.operations.ClusterRecoveryPointOperations :ivar replication_protection_container_mappings: ReplicationProtectionContainerMappingsOperations operations :vartype replication_protection_container_mappings: @@ -150,9 +166,9 @@ class SiteRecoveryManagementClient: # pylint: disable=client-accepts-api-versio :type resource_group_name: str :param resource_name: The name of the recovery services vault. Required. :type resource_name: str - :param base_url: Service URL. Default value is "https://management.azure.com". + :param base_url: Service URL. Default value is None. :type base_url: str - :keyword api_version: Api Version. Default value is "2023-08-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2025-02-01". 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 @@ -165,17 +181,44 @@ def __init__( subscription_id: str, resource_group_name: str, resource_name: str, - base_url: str = "https://management.azure.com", + base_url: Optional[str] = None, **kwargs: Any ) -> None: + _cloud = kwargs.pop("cloud_setting", None) or settings.current.azure_cloud # type: ignore + _endpoints = get_arm_endpoints(_cloud) + if not base_url: + base_url = _endpoints["resource_manager"] + credential_scopes = kwargs.pop("credential_scopes", _endpoints["credential_scopes"]) self._config = SiteRecoveryManagementClientConfiguration( credential=credential, subscription_id=subscription_id, resource_group_name=resource_group_name, resource_name=resource_name, + credential_scopes=credential_scopes, **kwargs ) - self._client: AsyncARMPipelineClient = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + _policies = kwargs.pop("policies", None) + if _policies is None: + _policies = [ + policies.RequestIdPolicy(**kwargs), + self._config.headers_policy, + self._config.user_agent_policy, + self._config.proxy_policy, + policies.ContentDecodePolicy(**kwargs), + AsyncARMAutoResourceProviderRegistrationPolicy(), + self._config.redirect_policy, + self._config.retry_policy, + self._config.authentication_policy, + self._config.custom_hook_policy, + self._config.logging_policy, + policies.DistributedTracingPolicy(**kwargs), + policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None, + self._config.http_logging_policy, + ] + self._client: AsyncARMPipelineClient = AsyncARMPipelineClient( + base_url=cast(str, base_url), policies=_policies, **kwargs + ) client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) @@ -225,6 +268,15 @@ def __init__( self.target_compute_sizes = TargetComputeSizesOperations( self._client, self._config, self._serialize, self._deserialize ) + self.replication_protection_clusters = ReplicationProtectionClustersOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.cluster_recovery_points = ClusterRecoveryPointsOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.cluster_recovery_point = ClusterRecoveryPointOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.replication_protection_container_mappings = ReplicationProtectionContainerMappingsOperations( self._client, self._config, self._serialize, self._deserialize ) @@ -262,7 +314,9 @@ def __init__( self._client, self._config, self._serialize, self._deserialize ) - def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncHttpResponse]: + def _send_request( + self, request: HttpRequest, *, stream: bool = False, **kwargs: Any + ) -> Awaitable[AsyncHttpResponse]: """Runs the network request through the client's chained policies. >>> from azure.core.rest import HttpRequest @@ -282,12 +336,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncH request_copy = deepcopy(request) request_copy.url = self._client.format_url(request_copy.url) - return self._client.send_request(request_copy, **kwargs) + return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore async def close(self) -> None: await self._client.close() - async def __aenter__(self) -> "SiteRecoveryManagementClient": + async def __aenter__(self) -> Self: await self._client.__aenter__() return self diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/__init__.py index b7fd6eae9142..f9d1125f15d2 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/__init__.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,38 +6,47 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position -from ._operations import Operations -from ._replication_alert_settings_operations import ReplicationAlertSettingsOperations -from ._replication_appliances_operations import ReplicationAppliancesOperations -from ._replication_eligibility_results_operations import ReplicationEligibilityResultsOperations -from ._replication_events_operations import ReplicationEventsOperations -from ._replication_fabrics_operations import ReplicationFabricsOperations -from ._replication_logical_networks_operations import ReplicationLogicalNetworksOperations -from ._replication_networks_operations import ReplicationNetworksOperations -from ._replication_network_mappings_operations import ReplicationNetworkMappingsOperations -from ._replication_protection_containers_operations import ReplicationProtectionContainersOperations -from ._replication_migration_items_operations import ReplicationMigrationItemsOperations -from ._migration_recovery_points_operations import MigrationRecoveryPointsOperations -from ._replication_protectable_items_operations import ReplicationProtectableItemsOperations -from ._replication_protected_items_operations import ReplicationProtectedItemsOperations -from ._recovery_points_operations import RecoveryPointsOperations -from ._target_compute_sizes_operations import TargetComputeSizesOperations -from ._replication_protection_container_mappings_operations import ReplicationProtectionContainerMappingsOperations -from ._replication_recovery_services_providers_operations import ReplicationRecoveryServicesProvidersOperations -from ._replication_storage_classifications_operations import ReplicationStorageClassificationsOperations -from ._replication_storage_classification_mappings_operations import ReplicationStorageClassificationMappingsOperations -from ._replicationv_centers_operations import ReplicationvCentersOperations -from ._replication_jobs_operations import ReplicationJobsOperations -from ._replication_policies_operations import ReplicationPoliciesOperations -from ._replication_protection_intents_operations import ReplicationProtectionIntentsOperations -from ._replication_recovery_plans_operations import ReplicationRecoveryPlansOperations -from ._supported_operating_systems_operations import SupportedOperatingSystemsOperations -from ._replication_vault_health_operations import ReplicationVaultHealthOperations -from ._replication_vault_setting_operations import ReplicationVaultSettingOperations +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._operations import Operations # type: ignore +from ._replication_alert_settings_operations import ReplicationAlertSettingsOperations # type: ignore +from ._replication_appliances_operations import ReplicationAppliancesOperations # type: ignore +from ._replication_eligibility_results_operations import ReplicationEligibilityResultsOperations # type: ignore +from ._replication_events_operations import ReplicationEventsOperations # type: ignore +from ._replication_fabrics_operations import ReplicationFabricsOperations # type: ignore +from ._replication_logical_networks_operations import ReplicationLogicalNetworksOperations # type: ignore +from ._replication_networks_operations import ReplicationNetworksOperations # type: ignore +from ._replication_network_mappings_operations import ReplicationNetworkMappingsOperations # type: ignore +from ._replication_protection_containers_operations import ReplicationProtectionContainersOperations # type: ignore +from ._replication_migration_items_operations import ReplicationMigrationItemsOperations # type: ignore +from ._migration_recovery_points_operations import MigrationRecoveryPointsOperations # type: ignore +from ._replication_protectable_items_operations import ReplicationProtectableItemsOperations # type: ignore +from ._replication_protected_items_operations import ReplicationProtectedItemsOperations # type: ignore +from ._recovery_points_operations import RecoveryPointsOperations # type: ignore +from ._target_compute_sizes_operations import TargetComputeSizesOperations # type: ignore +from ._replication_protection_clusters_operations import ReplicationProtectionClustersOperations # type: ignore +from ._cluster_recovery_points_operations import ClusterRecoveryPointsOperations # type: ignore +from ._cluster_recovery_point_operations import ClusterRecoveryPointOperations # type: ignore +from ._replication_protection_container_mappings_operations import ReplicationProtectionContainerMappingsOperations # type: ignore +from ._replication_recovery_services_providers_operations import ReplicationRecoveryServicesProvidersOperations # type: ignore +from ._replication_storage_classifications_operations import ReplicationStorageClassificationsOperations # type: ignore +from ._replication_storage_classification_mappings_operations import ReplicationStorageClassificationMappingsOperations # type: ignore +from ._replicationv_centers_operations import ReplicationvCentersOperations # type: ignore +from ._replication_jobs_operations import ReplicationJobsOperations # type: ignore +from ._replication_policies_operations import ReplicationPoliciesOperations # type: ignore +from ._replication_protection_intents_operations import ReplicationProtectionIntentsOperations # type: ignore +from ._replication_recovery_plans_operations import ReplicationRecoveryPlansOperations # type: ignore +from ._supported_operating_systems_operations import SupportedOperatingSystemsOperations # type: ignore +from ._replication_vault_health_operations import ReplicationVaultHealthOperations # type: ignore +from ._replication_vault_setting_operations import ReplicationVaultSettingOperations # type: ignore from ._patch import __all__ as _patch_all -from ._patch import * # pylint: disable=unused-wildcard-import +from ._patch import * from ._patch import patch_sdk as _patch_sdk __all__ = [ @@ -56,6 +66,9 @@ "ReplicationProtectedItemsOperations", "RecoveryPointsOperations", "TargetComputeSizesOperations", + "ReplicationProtectionClustersOperations", + "ClusterRecoveryPointsOperations", + "ClusterRecoveryPointOperations", "ReplicationProtectionContainerMappingsOperations", "ReplicationRecoveryServicesProvidersOperations", "ReplicationStorageClassificationsOperations", @@ -69,5 +82,5 @@ "ReplicationVaultHealthOperations", "ReplicationVaultSettingOperations", ] -__all__.extend([p for p in _patch_all if p not in __all__]) +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore _patch_sdk() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_cluster_recovery_point_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_cluster_recovery_point_operations.py new file mode 100644 index 000000000000..1be250617118 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_cluster_recovery_point_operations.py @@ -0,0 +1,129 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from typing import Any, Callable, Dict, Optional, TypeVar + +from azure.core import AsyncPipelineClient +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.rest import AsyncHttpResponse, HttpRequest +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models +from ..._serialization import Deserializer, Serializer +from ...operations._cluster_recovery_point_operations import build_get_request +from .._configuration import SiteRecoveryManagementClientConfiguration + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class ClusterRecoveryPointOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.recoveryservicessiterecovery.aio.SiteRecoveryManagementClient`'s + :attr:`cluster_recovery_point` attribute. + """ + + models = _models + + 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: SiteRecoveryManagementClientConfiguration = ( + 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_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + recovery_point_name: str, + **kwargs: Any + ) -> _models.ClusterRecoveryPoint: + """Gets a recovery point. + + Get the details of specified recovery point. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param recovery_point_name: The recovery point name. Required. + :type recovery_point_name: str + :return: ClusterRecoveryPoint or the result of cls(response) + :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPoint + :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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ClusterRecoveryPoint] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + recovery_point_name=recovery_point_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("ClusterRecoveryPoint", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_cluster_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_cluster_recovery_points_operations.py new file mode 100644 index 000000000000..572e0628b94e --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_cluster_recovery_points_operations.py @@ -0,0 +1,155 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar +import urllib.parse + +from azure.core import AsyncPipelineClient +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.rest import AsyncHttpResponse, HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models as _models +from ..._serialization import Deserializer, Serializer +from ...operations._cluster_recovery_points_operations import build_list_by_replication_protection_cluster_request +from .._configuration import SiteRecoveryManagementClientConfiguration + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class ClusterRecoveryPointsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.recoveryservicessiterecovery.aio.SiteRecoveryManagementClient`'s + :attr:`cluster_recovery_points` attribute. + """ + + models = _models + + 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: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_cluster( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> AsyncIterable["_models.ClusterRecoveryPoint"]: + """Gets the list of cluster recovery points. + + The list of cluster recovery points. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An iterator like instance of either ClusterRecoveryPoint or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPoint] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ClusterRecoveryPointCollection] = 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_list_by_replication_protection_cluster_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + 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 + ) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("ClusterRecoveryPointCollection", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_migration_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_migration_recovery_points_operations.py index 787b3ba6ca2f..45dfff8f845a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_migration_recovery_points_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_migration_recovery_points_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,19 +20,19 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._migration_recovery_points_operations import ( build_get_request, build_list_by_replication_migration_items_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -51,10 +52,12 @@ class MigrationRecoveryPointsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_migration_items( @@ -70,7 +73,6 @@ def list_by_replication_migration_items( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either MigrationRecoveryPoint or the result of cls(response) :rtype: @@ -83,7 +85,7 @@ def list_by_replication_migration_items( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationRecoveryPointCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -94,20 +96,18 @@ def list_by_replication_migration_items( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_migration_items_request( + _request = build_list_by_replication_migration_items_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_migration_items.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -119,13 +119,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("MigrationRecoveryPointCollection", pipeline_response) @@ -135,11 +134,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -151,10 +150,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_migration_items.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints" - } - @distributed_trace_async async def get( self, @@ -176,12 +171,11 @@ async def get( :type migration_item_name: str :param migration_recovery_point_name: The migration recovery point name. Required. :type migration_recovery_point_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: MigrationRecoveryPoint or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.MigrationRecoveryPoint :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -195,25 +189,23 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationRecoveryPoint] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, migration_recovery_point_name=migration_recovery_point_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -222,13 +214,9 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("MigrationRecoveryPoint", pipeline_response) + deserialized = self._deserialize("MigrationRecoveryPoint", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints/{migrationRecoveryPointName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_operations.py index 492ed419622a..cf34fa57fec4 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,15 +20,15 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._operations import build_list_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -47,10 +48,12 @@ class Operations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> AsyncIterable["_models.OperationsDiscovery"]: @@ -58,7 +61,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.OperationsDiscovery"]: Operation to return the list of available operations. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OperationsDiscovery or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.OperationsDiscovery] @@ -70,7 +72,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.OperationsDiscovery"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.OperationsDiscoveryCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -81,16 +83,14 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.OperationsDiscovery"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( + _request = build_list_request( resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -102,13 +102,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("OperationsDiscoveryCollection", pipeline_response) @@ -118,11 +117,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -133,7 +132,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/operations" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_recovery_points_operations.py index 78781223a3b6..6bdc84f1ee00 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_recovery_points_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_recovery_points_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,19 +20,19 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._recovery_points_operations import ( build_get_request, build_list_by_replication_protected_items_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -51,10 +52,12 @@ class RecoveryPointsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protected_items( @@ -70,7 +73,6 @@ def list_by_replication_protected_items( :type protection_container_name: str :param replicated_protected_item_name: The replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryPoint or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPoint] @@ -82,7 +84,7 @@ def list_by_replication_protected_items( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPointCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -93,20 +95,18 @@ def list_by_replication_protected_items( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protected_items_request( + _request = build_list_by_replication_protected_items_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protected_items.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -118,13 +118,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryPointCollection", pipeline_response) @@ -134,11 +133,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -150,10 +149,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_protected_items.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints" - } - @distributed_trace_async async def get( self, @@ -175,12 +170,11 @@ async def get( :type replicated_protected_item_name: str :param recovery_point_name: The recovery point name. Required. :type recovery_point_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: RecoveryPoint or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPoint :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -194,25 +188,23 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPoint] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, recovery_point_name=recovery_point_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -221,13 +213,9 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RecoveryPoint", pipeline_response) + deserialized = self._deserialize("RecoveryPoint", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints/{recoveryPointName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_alert_settings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_alert_settings_operations.py index 6e86c74c9202..ee4869a073eb 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_alert_settings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_alert_settings_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +5,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -20,20 +21,20 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_alert_settings_operations import ( build_create_request, build_get_request, build_list_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -53,10 +54,12 @@ class ReplicationAlertSettingsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> AsyncIterable["_models.Alert"]: @@ -64,7 +67,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Alert"]: Gets the list of email notification(alert) configurations for the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Alert or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Alert] @@ -76,7 +78,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Alert"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.AlertCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -87,17 +89,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Alert"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -109,13 +109,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("AlertCollection", pipeline_response) @@ -125,11 +124,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -141,10 +140,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings" - } - @distributed_trace_async async def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: """Gets an email notification(alert) configuration. @@ -153,12 +148,11 @@ async def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: :param alert_setting_name: The name of the email notification configuration. Required. :type alert_setting_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -172,22 +166,20 @@ async def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Alert] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( alert_setting_name=alert_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -196,16 +188,12 @@ async def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Alert", pipeline_response) + deserialized = self._deserialize("Alert", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings/{alertSettingName}" - } + return deserialized # type: ignore @overload async def create( @@ -227,7 +215,6 @@ async def create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: @@ -235,7 +222,7 @@ async def create( @overload async def create( - self, alert_setting_name: str, request: IO, *, content_type: str = "application/json", **kwargs: Any + self, alert_setting_name: str, request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> _models.Alert: """Configures email notifications for this vault. @@ -244,11 +231,10 @@ async def create( :param alert_setting_name: The name of the email notification(alert) configuration. Required. :type alert_setting_name: str :param request: The input to configure the email notification(alert). Required. - :type request: IO + :type request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: @@ -256,7 +242,7 @@ async def create( @distributed_trace_async async def create( - self, alert_setting_name: str, request: Union[_models.ConfigureAlertRequest, IO], **kwargs: Any + self, alert_setting_name: str, request: Union[_models.ConfigureAlertRequest, IO[bytes]], **kwargs: Any ) -> _models.Alert: """Configures email notifications for this vault. @@ -265,17 +251,14 @@ async def create( :param alert_setting_name: The name of the email notification(alert) configuration. Required. :type alert_setting_name: str :param request: The input to configure the email notification(alert). Is either a - ConfigureAlertRequest type or a IO type. Required. - :type request: ~azure.mgmt.recoveryservicessiterecovery.models.ConfigureAlertRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response + ConfigureAlertRequest type or a IO[bytes] type. Required. + :type request: ~azure.mgmt.recoveryservicessiterecovery.models.ConfigureAlertRequest or + IO[bytes] :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -298,25 +281,23 @@ async def create( else: _json = self._serialize.body(request, "ConfigureAlertRequest") - request = build_create_request( + _request = build_create_request( alert_setting_name=alert_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.create.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -325,13 +306,9 @@ async def create( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Alert", pipeline_response) + deserialized = self._deserialize("Alert", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings/{alertSettingName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_appliances_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_appliances_operations.py index 33a345932acb..1cd337de24f0 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_appliances_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_appliances_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,15 +20,15 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_appliances_operations import build_list_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -47,10 +48,12 @@ class ReplicationAppliancesOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_models.ReplicationAppliance"]: @@ -60,7 +63,6 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationAppliance or the result of cls(response) :rtype: @@ -73,7 +75,7 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ApplianceCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -84,18 +86,16 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -107,13 +107,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ApplianceCollection", pipeline_response) @@ -123,11 +122,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -138,7 +137,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAppliances" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_eligibility_results_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_eligibility_results_operations.py index e9de1209de2c..a607f1d3e4ef 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_eligibility_results_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_eligibility_results_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +5,10 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Optional, TypeVar +from azure.core import AsyncPipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -17,15 +18,15 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_eligibility_results_operations import build_get_request, build_list_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -45,10 +46,12 @@ class ReplicationEligibilityResultsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEligibilityResultsCollection: @@ -58,12 +61,11 @@ async def list(self, virtual_machine_name: str, **kwargs: Any) -> _models.Replic :param virtual_machine_name: Virtual Machine name. Required. :type virtual_machine_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationEligibilityResultsCollection or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationEligibilityResultsCollection :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -77,21 +79,19 @@ async def list(self, virtual_machine_name: str, **kwargs: Any) -> _models.Replic api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationEligibilityResultsCollection] = kwargs.pop("cls", None) - request = build_list_request( + _request = build_list_request( virtual_machine_name=virtual_machine_name, resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -100,16 +100,12 @@ async def list(self, virtual_machine_name: str, **kwargs: Any) -> _models.Replic map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationEligibilityResultsCollection", pipeline_response) + deserialized = self._deserialize("ReplicationEligibilityResultsCollection", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults" - } + return deserialized # type: ignore @distributed_trace_async async def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEligibilityResults: @@ -119,12 +115,11 @@ async def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.Replica :param virtual_machine_name: Virtual Machine name. Required. :type virtual_machine_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationEligibilityResults or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationEligibilityResults :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -138,21 +133,19 @@ async def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.Replica api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationEligibilityResults] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( virtual_machine_name=virtual_machine_name, resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -161,13 +154,9 @@ async def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.Replica map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationEligibilityResults", pipeline_response) + deserialized = self._deserialize("ReplicationEligibilityResults", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults/default" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_events_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_events_operations.py index 6a86c1b632da..bb8bd4cbbe22 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_events_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_events_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,16 +20,16 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_events_operations import build_get_request, build_list_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -48,10 +49,12 @@ class ReplicationEventsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_models.Event"]: @@ -61,7 +64,6 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Event or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Event] @@ -73,7 +75,7 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.EventCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -84,18 +86,16 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -107,13 +107,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("EventCollection", pipeline_response) @@ -123,11 +122,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -139,10 +138,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationEvents" - } - @distributed_trace_async async def get(self, event_name: str, **kwargs: Any) -> _models.Event: """Get the details of an Azure Site recovery event. @@ -151,12 +146,11 @@ async def get(self, event_name: str, **kwargs: Any) -> _models.Event: :param event_name: The name of the Azure Site Recovery event. Required. :type event_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Event or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Event :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -170,22 +164,20 @@ async def get(self, event_name: str, **kwargs: Any) -> _models.Event: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Event] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( event_name=event_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -194,13 +186,9 @@ async def get(self, event_name: str, **kwargs: Any) -> _models.Event: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Event", pipeline_response) + deserialized = self._deserialize("Event", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationEvents/{eventName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_fabrics_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_fabrics_operations.py index 15ac0ea860de..0ccd2db23945 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_fabrics_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_fabrics_operations.py @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_fabrics_operations import ( build_check_consistency_request, build_create_request, @@ -43,6 +46,7 @@ build_remove_infra_request, build_renew_certificate_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -62,10 +66,12 @@ class ReplicationFabricsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> AsyncIterable["_models.Fabric"]: @@ -73,7 +79,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Fabric"]: Gets a list of the Azure Site Recovery fabrics in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Fabric or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] @@ -85,7 +90,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Fabric"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.FabricCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -96,17 +101,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Fabric"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -118,13 +121,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("FabricCollection", pipeline_response) @@ -134,11 +136,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -150,10 +152,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics" - } - @distributed_trace_async async def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: Any) -> _models.Fabric: """Gets the details of an ASR fabric. @@ -164,12 +162,11 @@ async def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: An :type fabric_name: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Fabric or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Fabric :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -183,23 +180,21 @@ async def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: An api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Fabric] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -208,21 +203,17 @@ async def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: An map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return deserialized # type: ignore async def _create_initial( - self, fabric_name: str, input: Union[_models.FabricCreationInput, IO], **kwargs: Any - ) -> Optional[_models.Fabric]: - error_map = { + self, fabric_name: str, input: Union[_models.FabricCreationInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -235,7 +226,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -245,45 +236,42 @@ async def _create_initial( else: _json = self._serialize.body(input, "FabricCreationInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -305,14 +293,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -322,7 +302,7 @@ async def begin_create( @overload async def begin_create( - self, fabric_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, fabric_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.Fabric]: """Creates an Azure Site Recovery fabric. @@ -331,18 +311,10 @@ async def begin_create( :param fabric_name: Name of the ASR fabric. Required. :type fabric_name: str :param input: Fabric creation input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -352,7 +324,7 @@ async def begin_create( @distributed_trace_async async def begin_create( - self, fabric_name: str, input: Union[_models.FabricCreationInput, IO], **kwargs: Any + self, fabric_name: str, input: Union[_models.FabricCreationInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Fabric]: """Creates an Azure Site Recovery fabric. @@ -360,20 +332,9 @@ async def begin_create( :param fabric_name: Name of the ASR fabric. Required. :type fabric_name: str - :param input: Fabric creation input. Is either a FabricCreationInput type or a IO type. + :param input: Fabric creation input. Is either a FabricCreationInput type or a IO[bytes] type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.FabricCreationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.FabricCreationInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -400,12 +361,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -415,22 +377,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return AsyncLROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _purge_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _purge_initial(self, fabric_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -442,38 +400,41 @@ async def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_purge(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -483,14 +444,6 @@ async def begin_purge(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[N :param fabric_name: ASR fabric to purge. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -504,7 +457,7 @@ async def begin_purge(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[N 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._purge_initial( # type: ignore + raw_result = await self._purge_initial( fabric_name=fabric_name, api_version=api_version, cls=lambda x, y, z: x, @@ -512,11 +465,12 @@ async def begin_purge(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[N 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -525,20 +479,16 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - async def _check_consistency_initial(self, fabric_name: str, **kwargs: Any) -> Optional[_models.Fabric]: - error_map = { + async def _check_consistency_initial(self, fabric_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -550,44 +500,41 @@ async def _check_consistency_initial(self, fabric_name: str, **kwargs: Any) -> O _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_check_consistency_request( + _request = build_check_consistency_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._check_consistency_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _check_consistency_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/checkConsistency" - } + return deserialized # type: ignore @distributed_trace_async async def begin_check_consistency(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[_models.Fabric]: @@ -597,14 +544,6 @@ async def begin_check_consistency(self, fabric_name: str, **kwargs: Any) -> Asyn :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -628,12 +567,13 @@ async def begin_check_consistency(self, fabric_name: str, **kwargs: Any) -> Asyn params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -643,22 +583,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_check_consistency.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/checkConsistency" - } + return AsyncLROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _migrate_to_aad_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _migrate_to_aad_initial(self, fabric_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -670,38 +606,41 @@ async def _migrate_to_aad_initial( # pylint: disable=inconsistent-return-statem _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_migrate_to_aad_request( + _request = build_migrate_to_aad_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._migrate_to_aad_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _migrate_to_aad_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/migratetoaad" - } + return deserialized # type: ignore @distributed_trace_async async def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -711,14 +650,6 @@ async def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> AsyncLR :param fabric_name: ASR fabric to migrate. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -732,7 +663,7 @@ async def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> AsyncLR 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._migrate_to_aad_initial( # type: ignore + raw_result = await self._migrate_to_aad_initial( fabric_name=fabric_name, api_version=api_version, cls=lambda x, y, z: x, @@ -740,11 +671,12 @@ async def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> AsyncLR 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -753,25 +685,21 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_migrate_to_aad.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/migratetoaad" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _reassociate_gateway_initial( self, fabric_name: str, - failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO], + failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.Fabric]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -784,7 +712,7 @@ async def _reassociate_gateway_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -794,45 +722,42 @@ async def _reassociate_gateway_initial( else: _json = self._serialize.body(failover_process_server_request, "FailoverProcessServerRequest") - request = build_reassociate_gateway_request( + _request = build_reassociate_gateway_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._reassociate_gateway_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _reassociate_gateway_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/reassociateGateway" - } + return deserialized # type: ignore @overload async def begin_reassociate_gateway( @@ -856,14 +781,6 @@ async def begin_reassociate_gateway( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -875,7 +792,7 @@ async def begin_reassociate_gateway( async def begin_reassociate_gateway( self, fabric_name: str, - failover_process_server_request: IO, + failover_process_server_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -888,18 +805,10 @@ async def begin_reassociate_gateway( :type fabric_name: str :param failover_process_server_request: The input to the failover process server operation. Required. - :type failover_process_server_request: IO + :type failover_process_server_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -911,7 +820,7 @@ async def begin_reassociate_gateway( async def begin_reassociate_gateway( self, fabric_name: str, - failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO], + failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Fabric]: """Perform failover of the process server. @@ -921,20 +830,9 @@ async def begin_reassociate_gateway( :param fabric_name: The name of the fabric containing the process server. Required. :type fabric_name: str :param failover_process_server_request: The input to the failover process server operation. Is - either a FailoverProcessServerRequest type or a IO type. Required. + either a FailoverProcessServerRequest type or a IO[bytes] type. Required. :type failover_process_server_request: - ~azure.mgmt.recoveryservicessiterecovery.models.FailoverProcessServerRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.FailoverProcessServerRequest or IO[bytes] :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -961,12 +859,13 @@ async def begin_reassociate_gateway( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -976,22 +875,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_reassociate_gateway.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/reassociateGateway" - } + return AsyncLROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _delete_initial(self, fabric_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1003,38 +898,41 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/remove" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -1044,14 +942,6 @@ async def begin_delete(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[ :param fabric_name: ASR fabric to delete. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1065,7 +955,7 @@ async def begin_delete(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[ 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, api_version=api_version, cls=lambda x, y, z: x, @@ -1073,11 +963,12 @@ async def begin_delete(self, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[ 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -1086,22 +977,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/remove" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _renew_certificate_initial( - self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO], **kwargs: Any - ) -> Optional[_models.Fabric]: - error_map = { + self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1114,7 +1001,7 @@ async def _renew_certificate_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1124,45 +1011,42 @@ async def _renew_certificate_initial( else: _json = self._serialize.body(renew_certificate, "RenewCertificateInput") - request = build_renew_certificate_request( + _request = build_renew_certificate_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._renew_certificate_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _renew_certificate_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/renewCertificate" - } + return deserialized # type: ignore @overload async def begin_renew_certificate( @@ -1184,14 +1068,6 @@ async def begin_renew_certificate( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -1201,7 +1077,7 @@ async def begin_renew_certificate( @overload async def begin_renew_certificate( - self, fabric_name: str, renew_certificate: IO, *, content_type: str = "application/json", **kwargs: Any + self, fabric_name: str, renew_certificate: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.Fabric]: """Renews certificate for the fabric. @@ -1210,18 +1086,10 @@ async def begin_renew_certificate( :param fabric_name: fabric name to renew certs for. Required. :type fabric_name: str :param renew_certificate: Renew certificate input. Required. - :type renew_certificate: IO + :type renew_certificate: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -1231,7 +1099,7 @@ async def begin_renew_certificate( @distributed_trace_async async def begin_renew_certificate( - self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO], **kwargs: Any + self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Fabric]: """Renews certificate for the fabric. @@ -1240,20 +1108,9 @@ async def begin_renew_certificate( :param fabric_name: fabric name to renew certs for. Required. :type fabric_name: str :param renew_certificate: Renew certificate input. Is either a RenewCertificateInput type or a - IO type. Required. + IO[bytes] type. Required. :type renew_certificate: ~azure.mgmt.recoveryservicessiterecovery.models.RenewCertificateInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either Fabric or the result of cls(response) :rtype: @@ -1280,12 +1137,13 @@ async def begin_renew_certificate( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1295,22 +1153,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_renew_certificate.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/renewCertificate" - } + return AsyncLROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _remove_infra_initial( # pylint: disable=inconsistent-return-statements - self, resource_name: str, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _remove_infra_initial(self, resource_name: str, fabric_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1322,29 +1176,32 @@ async def _remove_infra_initial( # pylint: disable=inconsistent-return-statemen _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_remove_infra_request( + _request = build_remove_infra_request( resource_name=resource_name, fabric_name=fabric_name, resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._remove_infra_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -1352,12 +1209,12 @@ async def _remove_infra_initial( # pylint: disable=inconsistent-return-statemen response_headers = {} response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, response_headers) + return cls(pipeline_response, deserialized, response_headers) # type: ignore - _remove_infra_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/removeInfra" - } + return deserialized # type: ignore @distributed_trace_async async def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -1369,14 +1226,6 @@ async def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwarg :type resource_name: str :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1390,7 +1239,7 @@ async def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwarg 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._remove_infra_initial( # type: ignore + raw_result = await self._remove_infra_initial( resource_name=resource_name, fabric_name=fabric_name, api_version=api_version, @@ -1399,11 +1248,12 @@ async def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwarg 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -1412,14 +1262,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_remove_infra.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/removeInfra" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_jobs_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_jobs_operations.py index b0488882e781..c99520442438 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_jobs_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_jobs_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +5,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +18,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +32,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_jobs_operations import ( build_cancel_request, build_export_request, @@ -39,6 +41,7 @@ build_restart_request, build_resume_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -58,10 +61,12 @@ class ReplicationJobsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_models.Job"]: @@ -71,7 +76,6 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Job or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Job] @@ -83,7 +87,7 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.JobCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -94,18 +98,16 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> AsyncIterable["_m def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -117,13 +119,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("JobCollection", pipeline_response) @@ -133,11 +134,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -149,10 +150,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs" - } - @distributed_trace_async async def get(self, job_name: str, **kwargs: Any) -> _models.Job: """Gets the job details. @@ -161,12 +158,11 @@ async def get(self, job_name: str, **kwargs: Any) -> _models.Job: :param job_name: Job identifier. Required. :type job_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Job or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Job :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -180,22 +176,20 @@ async def get(self, job_name: str, **kwargs: Any) -> _models.Job: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Job] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -204,19 +198,15 @@ async def get(self, job_name: str, **kwargs: Any) -> _models.Job: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}" - } + return deserialized # type: ignore - async def _cancel_initial(self, job_name: str, **kwargs: Any) -> Optional[_models.Job]: - error_map = { + async def _cancel_initial(self, job_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -228,44 +218,41 @@ async def _cancel_initial(self, job_name: str, **kwargs: Any) -> Optional[_model _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_cancel_request( + _request = build_cancel_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._cancel_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _cancel_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/cancel" - } + return deserialized # type: ignore @distributed_trace_async async def begin_cancel(self, job_name: str, **kwargs: Any) -> AsyncLROPoller[_models.Job]: @@ -275,14 +262,6 @@ async def begin_cancel(self, job_name: str, **kwargs: Any) -> AsyncLROPoller[_mo :param job_name: Job identifier. Required. :type job_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -304,12 +283,13 @@ async def begin_cancel(self, job_name: str, **kwargs: Any) -> AsyncLROPoller[_mo params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -319,20 +299,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_cancel.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/cancel" - } + return AsyncLROPoller[_models.Job]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _restart_initial(self, job_name: str, **kwargs: Any) -> Optional[_models.Job]: - error_map = { + async def _restart_initial(self, job_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -344,44 +322,41 @@ async def _restart_initial(self, job_name: str, **kwargs: Any) -> Optional[_mode _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_restart_request( + _request = build_restart_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._restart_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _restart_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/restart" - } + return deserialized # type: ignore @distributed_trace_async async def begin_restart(self, job_name: str, **kwargs: Any) -> AsyncLROPoller[_models.Job]: @@ -391,14 +366,6 @@ async def begin_restart(self, job_name: str, **kwargs: Any) -> AsyncLROPoller[_m :param job_name: Job identifier. Required. :type job_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -420,12 +387,13 @@ async def begin_restart(self, job_name: str, **kwargs: Any) -> AsyncLROPoller[_m params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -435,22 +403,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_restart.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/restart" - } + return AsyncLROPoller[_models.Job]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _resume_initial( - self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO], **kwargs: Any - ) -> Optional[_models.Job]: - error_map = { + self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -463,7 +429,7 @@ async def _resume_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -473,45 +439,42 @@ async def _resume_initial( else: _json = self._serialize.body(resume_job_params, "ResumeJobParams") - request = build_resume_request( + _request = build_resume_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resume_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _resume_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/resume" - } + return deserialized # type: ignore @overload async def begin_resume( @@ -533,14 +496,6 @@ async def begin_resume( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -548,7 +503,7 @@ async def begin_resume( @overload async def begin_resume( - self, job_name: str, resume_job_params: IO, *, content_type: str = "application/json", **kwargs: Any + self, job_name: str, resume_job_params: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.Job]: """Resumes the specified job. @@ -557,18 +512,10 @@ async def begin_resume( :param job_name: Job identifier. Required. :type job_name: str :param resume_job_params: Resume rob comments. Required. - :type resume_job_params: IO + :type resume_job_params: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -576,7 +523,7 @@ async def begin_resume( @distributed_trace_async async def begin_resume( - self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO], **kwargs: Any + self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Job]: """Resumes the specified job. @@ -584,20 +531,10 @@ async def begin_resume( :param job_name: Job identifier. Required. :type job_name: str - :param resume_job_params: Resume rob comments. Is either a ResumeJobParams type or a IO type. - Required. - :type resume_job_params: ~azure.mgmt.recoveryservicessiterecovery.models.ResumeJobParams or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param resume_job_params: Resume rob comments. Is either a ResumeJobParams type or a IO[bytes] + type. Required. + :type resume_job_params: ~azure.mgmt.recoveryservicessiterecovery.models.ResumeJobParams or + IO[bytes] :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -622,12 +559,13 @@ async def begin_resume( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -637,22 +575,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resume.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/resume" - } + return AsyncLROPoller[_models.Job]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _export_initial( - self, job_query_parameter: Union[_models.JobQueryParameter, IO], **kwargs: Any - ) -> Optional[_models.Job]: - error_map = { + self, job_query_parameter: Union[_models.JobQueryParameter, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -665,7 +601,7 @@ async def _export_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -675,44 +611,41 @@ async def _export_initial( else: _json = self._serialize.body(job_query_parameter, "JobQueryParameter") - request = build_export_request( - resource_name=self._config.resource_name, + _request = build_export_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._export_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _export_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/export" - } + return deserialized # type: ignore @overload async def begin_export( @@ -727,14 +660,6 @@ async def begin_export( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -742,25 +667,17 @@ async def begin_export( @overload async def begin_export( - self, job_query_parameter: IO, *, content_type: str = "application/json", **kwargs: Any + self, job_query_parameter: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.Job]: """Exports the details of the Azure Site Recovery jobs of the vault. The operation to export the details of the Azure Site Recovery jobs of the vault. :param job_query_parameter: job query filter. Required. - :type job_query_parameter: IO + :type job_query_parameter: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -768,27 +685,16 @@ async def begin_export( @distributed_trace_async async def begin_export( - self, job_query_parameter: Union[_models.JobQueryParameter, IO], **kwargs: Any + self, job_query_parameter: Union[_models.JobQueryParameter, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Job]: """Exports the details of the Azure Site Recovery jobs of the vault. The operation to export the details of the Azure Site Recovery jobs of the vault. - :param job_query_parameter: job query filter. Is either a JobQueryParameter type or a IO type. - Required. + :param job_query_parameter: job query filter. Is either a JobQueryParameter type or a IO[bytes] + type. Required. :type job_query_parameter: ~azure.mgmt.recoveryservicessiterecovery.models.JobQueryParameter or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -812,12 +718,13 @@ async def begin_export( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -827,14 +734,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_export.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/export" - } + return AsyncLROPoller[_models.Job]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_logical_networks_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_logical_networks_operations.py index 562a4ef04af2..d1abec506bea 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_logical_networks_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_logical_networks_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,19 +20,19 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_logical_networks_operations import ( build_get_request, build_list_by_replication_fabrics_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -51,10 +52,12 @@ class ReplicationLogicalNetworksOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncIterable["_models.LogicalNetwork"]: @@ -64,7 +67,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI :param fabric_name: Server Id. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogicalNetwork or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.LogicalNetwork] @@ -76,7 +78,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.LogicalNetworkCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -87,18 +89,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -110,13 +110,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("LogicalNetworkCollection", pipeline_response) @@ -126,11 +125,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -142,10 +141,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationLogicalNetworks" - } - @distributed_trace_async async def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) -> _models.LogicalNetwork: """Gets a logical network with specified server id and logical network name. @@ -156,12 +151,11 @@ async def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) :type fabric_name: str :param logical_network_name: Logical network name. Required. :type logical_network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: LogicalNetwork or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.LogicalNetwork :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -175,23 +169,21 @@ async def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.LogicalNetwork] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, logical_network_name=logical_network_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -200,13 +192,9 @@ async def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("LogicalNetwork", pipeline_response) + deserialized = self._deserialize("LogicalNetwork", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationLogicalNetworks/{logicalNetworkName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_migration_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_migration_items_operations.py index e1ece84fdf8a..833dde53f19c 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_migration_items_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_migration_items_operations.py @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_migration_items_operations import ( build_create_request, build_delete_request, @@ -45,6 +48,7 @@ build_test_migrate_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -64,13 +68,15 @@ class ReplicationMigrationItemsOperations: # pylint: disable=too-many-public-me def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, @@ -93,7 +99,6 @@ def list_by_replication_protection_containers( :type take_token: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either MigrationItem or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.MigrationItem] @@ -105,7 +110,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -116,22 +121,20 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, take_token=take_token, filter=filter, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -143,13 +146,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("MigrationItemCollection", pipeline_response) @@ -159,11 +161,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -175,10 +177,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems" - } - @distributed_trace_async async def get( self, fabric_name: str, protection_container_name: str, migration_item_name: str, **kwargs: Any @@ -193,12 +191,11 @@ async def get( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: MigrationItem or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.MigrationItem :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -212,24 +209,22 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationItem] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -238,26 +233,22 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.EnableMigrationInput, IO], + input: Union[_models.EnableMigrationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -270,7 +261,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -280,47 +271,44 @@ async def _create_initial( else: _json = self._serialize.body(input, "EnableMigrationInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -348,14 +336,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -369,7 +349,7 @@ async def begin_create( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -385,18 +365,10 @@ async def begin_create( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param input: Enable migration input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -410,7 +382,7 @@ async def begin_create( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.EnableMigrationInput, IO], + input: Union[_models.EnableMigrationInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Enables migration. @@ -423,20 +395,9 @@ async def begin_create( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param input: Enable migration input. Is either a EnableMigrationInput type or a IO type. - Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableMigrationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Enable migration input. Is either a EnableMigrationInput type or a IO[bytes] + type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableMigrationInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -465,12 +426,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -480,27 +442,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements + async def _delete_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, delete_option: Optional[str] = None, **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -512,41 +472,44 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, delete_option=delete_option, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete( @@ -569,14 +532,6 @@ async def begin_delete( :type migration_item_name: str :param delete_option: The delete option. Default value is None. :type delete_option: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -590,7 +545,7 @@ async def begin_delete( 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, @@ -601,11 +556,12 @@ async def begin_delete( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -614,27 +570,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.UpdateMigrationItemInput, IO], + input: Union[_models.UpdateMigrationItemInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -647,7 +599,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -657,47 +609,44 @@ async def _update_initial( else: _json = self._serialize.body(input, "UpdateMigrationItemInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -725,14 +674,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -746,7 +687,7 @@ async def begin_update( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -762,18 +703,10 @@ async def begin_update( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param input: Update migration item input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -787,7 +720,7 @@ async def begin_update( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.UpdateMigrationItemInput, IO], + input: Union[_models.UpdateMigrationItemInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Updates migration item. @@ -800,20 +733,10 @@ async def begin_update( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param input: Update migration item input. Is either a UpdateMigrationItemInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMigrationItemInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update migration item input. Is either a UpdateMigrationItemInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMigrationItemInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -842,12 +765,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -857,27 +781,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _migrate_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - migrate_input: Union[_models.MigrateInput, IO], + migrate_input: Union[_models.MigrateInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -890,7 +812,7 @@ async def _migrate_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -900,47 +822,44 @@ async def _migrate_initial( else: _json = self._serialize.body(migrate_input, "MigrateInput") - request = build_migrate_request( + _request = build_migrate_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._migrate_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _migrate_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrate" - } + return deserialized # type: ignore @overload async def begin_migrate( @@ -968,14 +887,6 @@ async def begin_migrate( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -989,7 +900,7 @@ async def begin_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - migrate_input: IO, + migrate_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1005,18 +916,10 @@ async def begin_migrate( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param migrate_input: Migrate input. Required. - :type migrate_input: IO + :type migrate_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1030,7 +933,7 @@ async def begin_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - migrate_input: Union[_models.MigrateInput, IO], + migrate_input: Union[_models.MigrateInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Migrate item. @@ -1043,19 +946,9 @@ async def begin_migrate( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param migrate_input: Migrate input. Is either a MigrateInput type or a IO type. Required. - :type migrate_input: ~azure.mgmt.recoveryservicessiterecovery.models.MigrateInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param migrate_input: Migrate input. Is either a MigrateInput type or a IO[bytes] type. + Required. + :type migrate_input: ~azure.mgmt.recoveryservicessiterecovery.models.MigrateInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1084,12 +977,13 @@ async def begin_migrate( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1099,27 +993,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_migrate.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrate" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _pause_replication_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - pause_replication_input: Union[_models.PauseReplicationInput, IO], + pause_replication_input: Union[_models.PauseReplicationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1132,7 +1024,7 @@ async def _pause_replication_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1142,47 +1034,44 @@ async def _pause_replication_initial( else: _json = self._serialize.body(pause_replication_input, "PauseReplicationInput") - request = build_pause_replication_request( + _request = build_pause_replication_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._pause_replication_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _pause_replication_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/pauseReplication" - } + return deserialized # type: ignore @overload async def begin_pause_replication( @@ -1211,14 +1100,6 @@ async def begin_pause_replication( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1232,7 +1113,7 @@ async def begin_pause_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - pause_replication_input: IO, + pause_replication_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1248,18 +1129,10 @@ async def begin_pause_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param pause_replication_input: Pause replication input. Required. - :type pause_replication_input: IO + :type pause_replication_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1273,7 +1146,7 @@ async def begin_pause_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - pause_replication_input: Union[_models.PauseReplicationInput, IO], + pause_replication_input: Union[_models.PauseReplicationInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Pause replication. @@ -1287,20 +1160,9 @@ async def begin_pause_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param pause_replication_input: Pause replication input. Is either a PauseReplicationInput type - or a IO type. Required. + or a IO[bytes] type. Required. :type pause_replication_input: - ~azure.mgmt.recoveryservicessiterecovery.models.PauseReplicationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.PauseReplicationInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1329,12 +1191,13 @@ async def begin_pause_replication( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1344,27 +1207,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_pause_replication.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/pauseReplication" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _resume_replication_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - resume_replication_input: Union[_models.ResumeReplicationInput, IO], + resume_replication_input: Union[_models.ResumeReplicationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1377,7 +1238,7 @@ async def _resume_replication_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1387,47 +1248,44 @@ async def _resume_replication_initial( else: _json = self._serialize.body(resume_replication_input, "ResumeReplicationInput") - request = build_resume_replication_request( + _request = build_resume_replication_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resume_replication_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _resume_replication_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resumeReplication" - } + return deserialized # type: ignore @overload async def begin_resume_replication( @@ -1456,14 +1314,6 @@ async def begin_resume_replication( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1477,7 +1327,7 @@ async def begin_resume_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - resume_replication_input: IO, + resume_replication_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1493,18 +1343,10 @@ async def begin_resume_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param resume_replication_input: Resume replication input. Required. - :type resume_replication_input: IO + :type resume_replication_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1518,7 +1360,7 @@ async def begin_resume_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - resume_replication_input: Union[_models.ResumeReplicationInput, IO], + resume_replication_input: Union[_models.ResumeReplicationInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Resume replication. @@ -1532,20 +1374,9 @@ async def begin_resume_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param resume_replication_input: Resume replication input. Is either a ResumeReplicationInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type resume_replication_input: - ~azure.mgmt.recoveryservicessiterecovery.models.ResumeReplicationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.ResumeReplicationInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1574,12 +1405,13 @@ async def begin_resume_replication( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1589,27 +1421,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resume_replication.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resumeReplication" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _resync_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.ResyncInput, IO], + input: Union[_models.ResyncInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1622,7 +1452,7 @@ async def _resync_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1632,47 +1462,44 @@ async def _resync_initial( else: _json = self._serialize.body(input, "ResyncInput") - request = build_resync_request( + _request = build_resync_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resync_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _resync_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resync" - } + return deserialized # type: ignore @overload async def begin_resync( @@ -1700,14 +1527,6 @@ async def begin_resync( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1721,7 +1540,7 @@ async def begin_resync( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1737,18 +1556,10 @@ async def begin_resync( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param input: Resync input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1762,7 +1573,7 @@ async def begin_resync( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.ResyncInput, IO], + input: Union[_models.ResyncInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Resynchronizes replication. @@ -1775,19 +1586,8 @@ async def begin_resync( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param input: Resync input. Is either a ResyncInput type or a IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.ResyncInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Resync input. Is either a ResyncInput type or a IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.ResyncInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1816,12 +1616,13 @@ async def begin_resync( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1831,27 +1632,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resync.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resync" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _test_migrate_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_input: Union[_models.TestMigrateInput, IO], + test_migrate_input: Union[_models.TestMigrateInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1864,7 +1663,7 @@ async def _test_migrate_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1874,47 +1673,44 @@ async def _test_migrate_initial( else: _json = self._serialize.body(test_migrate_input, "TestMigrateInput") - request = build_test_migrate_request( + _request = build_test_migrate_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_migrate_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _test_migrate_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrate" - } + return deserialized # type: ignore @overload async def begin_test_migrate( @@ -1942,14 +1738,6 @@ async def begin_test_migrate( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1963,7 +1751,7 @@ async def begin_test_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_input: IO, + test_migrate_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1979,18 +1767,10 @@ async def begin_test_migrate( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param test_migrate_input: Test migrate input. Required. - :type test_migrate_input: IO + :type test_migrate_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2004,7 +1784,7 @@ async def begin_test_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_input: Union[_models.TestMigrateInput, IO], + test_migrate_input: Union[_models.TestMigrateInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Test migrate item. @@ -2017,21 +1797,10 @@ async def begin_test_migrate( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param test_migrate_input: Test migrate input. Is either a TestMigrateInput type or a IO type. - Required. + :param test_migrate_input: Test migrate input. Is either a TestMigrateInput type or a IO[bytes] + type. Required. :type test_migrate_input: ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2060,12 +1829,13 @@ async def begin_test_migrate( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2075,27 +1845,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_migrate.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrate" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _test_migrate_cleanup_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO], + test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2108,7 +1876,7 @@ async def _test_migrate_cleanup_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2118,47 +1886,44 @@ async def _test_migrate_cleanup_initial( else: _json = self._serialize.body(test_migrate_cleanup_input, "TestMigrateCleanupInput") - request = build_test_migrate_cleanup_request( + _request = build_test_migrate_cleanup_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_migrate_cleanup_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_migrate_cleanup_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrateCleanup" - } + return deserialized # type: ignore @overload async def begin_test_migrate_cleanup( @@ -2187,14 +1952,6 @@ async def begin_test_migrate_cleanup( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2208,7 +1965,7 @@ async def begin_test_migrate_cleanup( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_cleanup_input: IO, + test_migrate_cleanup_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2224,18 +1981,10 @@ async def begin_test_migrate_cleanup( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param test_migrate_cleanup_input: Test migrate cleanup input. Required. - :type test_migrate_cleanup_input: IO + :type test_migrate_cleanup_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2249,7 +1998,7 @@ async def begin_test_migrate_cleanup( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO], + test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.MigrationItem]: """Test migrate cleanup. @@ -2263,20 +2012,9 @@ async def begin_test_migrate_cleanup( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param test_migrate_cleanup_input: Test migrate cleanup input. Is either a - TestMigrateCleanupInput type or a IO type. Required. + TestMigrateCleanupInput type or a IO[bytes] type. Required. :type test_migrate_cleanup_input: - ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateCleanupInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateCleanupInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2305,12 +2043,13 @@ async def begin_test_migrate_cleanup( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2320,17 +2059,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_migrate_cleanup.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrateCleanup" - } + return AsyncLROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list( @@ -2350,7 +2087,6 @@ def list( :type take_token: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either MigrationItem or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.MigrationItem] @@ -2362,7 +2098,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2373,20 +2109,18 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, take_token=take_token, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -2398,13 +2132,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("MigrationItemCollection", pipeline_response) @@ -2414,11 +2147,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -2429,7 +2162,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationMigrationItems" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_network_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_network_mappings_operations.py index 471670783c5c..9a68bbf6c349 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_network_mappings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_network_mappings_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +5,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +18,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +32,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_network_mappings_operations import ( build_create_request, build_delete_request, @@ -39,6 +41,7 @@ build_list_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -58,10 +61,12 @@ class ReplicationNetworkMappingsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_networks( @@ -75,7 +80,6 @@ def list_by_replication_networks( :type fabric_name: str :param network_name: Primary network name. Required. :type network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either NetworkMapping or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.NetworkMapping] @@ -87,7 +91,7 @@ def list_by_replication_networks( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -98,19 +102,17 @@ def list_by_replication_networks( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_networks_request( + _request = build_list_by_replication_networks_request( fabric_name=fabric_name, network_name=network_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_networks.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -122,13 +124,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("NetworkMappingCollection", pipeline_response) @@ -138,11 +139,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -154,10 +155,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_networks.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings" - } - @distributed_trace_async async def get( self, fabric_name: str, network_name: str, network_mapping_name: str, **kwargs: Any @@ -172,12 +169,11 @@ async def get( :type network_name: str :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: NetworkMapping or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.NetworkMapping :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -191,24 +187,22 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkMapping] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -217,26 +211,22 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = self._deserialize("NetworkMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.CreateNetworkMappingInput, IO], + input: Union[_models.CreateNetworkMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.NetworkMapping]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -249,7 +239,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.NetworkMapping]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -259,47 +249,44 @@ async def _create_initial( else: _json = self._serialize.body(input, "CreateNetworkMappingInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -327,14 +314,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -348,7 +327,7 @@ async def begin_create( fabric_name: str, network_name: str, network_mapping_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -364,18 +343,10 @@ async def begin_create( :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str :param input: Create network mapping input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -389,7 +360,7 @@ async def begin_create( fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.CreateNetworkMappingInput, IO], + input: Union[_models.CreateNetworkMappingInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.NetworkMapping]: """Creates network mapping. @@ -402,20 +373,10 @@ async def begin_create( :type network_name: str :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str - :param input: Create network mapping input. Is either a CreateNetworkMappingInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateNetworkMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Create network mapping input. Is either a CreateNetworkMappingInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateNetworkMappingInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -444,12 +405,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = self._deserialize("NetworkMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -459,22 +421,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.NetworkMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return AsyncLROPoller[_models.NetworkMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements + async def _delete_initial( self, fabric_name: str, network_name: str, network_mapping_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -486,40 +446,43 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete( @@ -535,14 +498,6 @@ async def begin_delete( :type network_name: str :param network_mapping_name: ARM Resource Name for network mapping. Required. :type network_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -556,7 +511,7 @@ async def begin_delete( 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, @@ -566,11 +521,12 @@ async def begin_delete( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -579,27 +535,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( self, fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.UpdateNetworkMappingInput, IO], + input: Union[_models.UpdateNetworkMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.NetworkMapping]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -612,7 +564,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.NetworkMapping]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -622,47 +574,44 @@ async def _update_initial( else: _json = self._serialize.body(input, "UpdateNetworkMappingInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -690,14 +639,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -711,7 +652,7 @@ async def begin_update( fabric_name: str, network_name: str, network_mapping_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -727,18 +668,10 @@ async def begin_update( :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str :param input: Update network mapping input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -752,7 +685,7 @@ async def begin_update( fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.UpdateNetworkMappingInput, IO], + input: Union[_models.UpdateNetworkMappingInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.NetworkMapping]: """Updates network mapping. @@ -765,20 +698,10 @@ async def begin_update( :type network_name: str :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str - :param input: Update network mapping input. Is either a UpdateNetworkMappingInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateNetworkMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update network mapping input. Is either a UpdateNetworkMappingInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateNetworkMappingInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -807,12 +730,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = self._deserialize("NetworkMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -822,17 +746,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.NetworkMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return AsyncLROPoller[_models.NetworkMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.NetworkMapping"]: @@ -840,7 +762,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.NetworkMapping"]: Lists all ASR network mappings in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either NetworkMapping or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.NetworkMapping] @@ -852,7 +773,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.NetworkMapping"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -863,17 +784,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.NetworkMapping"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -885,13 +804,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("NetworkMappingCollection", pipeline_response) @@ -901,11 +819,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -916,7 +834,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationNetworkMappings" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_networks_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_networks_operations.py index 23b52d425241..e2219887b33a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_networks_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_networks_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,20 +20,20 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_networks_operations import ( build_get_request, build_list_by_replication_fabrics_request, build_list_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -52,10 +53,12 @@ class ReplicationNetworksOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncIterable["_models.Network"]: @@ -65,7 +68,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Network or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Network] @@ -77,7 +79,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -88,18 +90,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -111,13 +111,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("NetworkCollection", pipeline_response) @@ -127,11 +126,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -143,10 +142,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks" - } - @distributed_trace_async async def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _models.Network: """Gets a network with specified server id and network name. @@ -157,12 +152,11 @@ async def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _mode :type fabric_name: str :param network_name: Primary network name. Required. :type network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Network or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Network :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -176,23 +170,21 @@ async def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _mode api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Network] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, network_name=network_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -201,16 +193,12 @@ async def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _mode map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Network", pipeline_response) + deserialized = self._deserialize("Network", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}" - } + return deserialized # type: ignore @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.Network"]: @@ -218,7 +206,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Network"]: Lists the networks available in a vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Network or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Network] @@ -230,7 +217,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Network"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -241,17 +228,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Network"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -263,13 +248,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("NetworkCollection", pipeline_response) @@ -279,11 +263,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -294,7 +278,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationNetworks" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_policies_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_policies_operations.py index 32c40c019ee2..b55e57d4be2b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_policies_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_policies_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +5,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +18,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +32,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_policies_operations import ( build_create_request, build_delete_request, @@ -38,6 +40,7 @@ build_list_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -57,10 +60,12 @@ class ReplicationPoliciesOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> AsyncIterable["_models.Policy"]: @@ -68,7 +73,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Policy"]: Lists the replication policies for a vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Policy or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Policy] @@ -80,7 +84,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Policy"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.PolicyCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -91,17 +95,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Policy"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -113,13 +115,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("PolicyCollection", pipeline_response) @@ -129,11 +130,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -145,10 +146,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies" - } - @distributed_trace_async async def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: """Gets the requested policy. @@ -157,12 +154,11 @@ async def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: :param policy_name: Replication policy name. Required. :type policy_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Policy or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Policy :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -176,22 +172,20 @@ async def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Policy] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -200,21 +194,17 @@ async def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = self._deserialize("Policy", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore async def _create_initial( - self, policy_name: str, input: Union[_models.CreatePolicyInput, IO], **kwargs: Any - ) -> Optional[_models.Policy]: - error_map = { + self, policy_name: str, input: Union[_models.CreatePolicyInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -227,7 +217,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Policy]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -237,45 +227,42 @@ async def _create_initial( else: _json = self._serialize.body(input, "CreatePolicyInput") - request = build_create_request( + _request = build_create_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -297,14 +284,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Policy or the result of cls(response) :rtype: @@ -314,7 +293,7 @@ async def begin_create( @overload async def begin_create( - self, policy_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, policy_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.Policy]: """Creates the policy. @@ -323,18 +302,10 @@ async def begin_create( :param policy_name: Replication policy name. Required. :type policy_name: str :param input: Create policy input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Policy or the result of cls(response) :rtype: @@ -344,7 +315,7 @@ async def begin_create( @distributed_trace_async async def begin_create( - self, policy_name: str, input: Union[_models.CreatePolicyInput, IO], **kwargs: Any + self, policy_name: str, input: Union[_models.CreatePolicyInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Policy]: """Creates the policy. @@ -352,19 +323,9 @@ async def begin_create( :param policy_name: Replication policy name. Required. :type policy_name: str - :param input: Create policy input. Is either a CreatePolicyInput type or a IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreatePolicyInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Create policy input. Is either a CreatePolicyInput type or a IO[bytes] type. + Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreatePolicyInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either Policy or the result of cls(response) :rtype: @@ -391,12 +352,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = self._deserialize("Policy", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -406,22 +368,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Policy].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return AsyncLROPoller[_models.Policy]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, policy_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _delete_initial(self, policy_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -433,38 +391,41 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete(self, policy_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -474,14 +435,6 @@ async def begin_delete(self, policy_name: str, **kwargs: Any) -> AsyncLROPoller[ :param policy_name: Replication policy name. Required. :type policy_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -495,7 +448,7 @@ async def begin_delete(self, policy_name: str, **kwargs: Any) -> AsyncLROPoller[ 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( # type: ignore + raw_result = await self._delete_initial( policy_name=policy_name, api_version=api_version, cls=lambda x, y, z: x, @@ -503,11 +456,12 @@ async def begin_delete(self, policy_name: str, **kwargs: Any) -> AsyncLROPoller[ 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -516,22 +470,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( - self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO], **kwargs: Any - ) -> Optional[_models.Policy]: - error_map = { + self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -544,7 +494,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Policy]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -554,45 +504,42 @@ async def _update_initial( else: _json = self._serialize.body(input, "UpdatePolicyInput") - request = build_update_request( + _request = build_update_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -614,14 +561,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Policy or the result of cls(response) :rtype: @@ -631,7 +570,7 @@ async def begin_update( @overload async def begin_update( - self, policy_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, policy_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.Policy]: """Updates the policy. @@ -640,18 +579,10 @@ async def begin_update( :param policy_name: Policy Id. Required. :type policy_name: str :param input: Update Policy Input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either Policy or the result of cls(response) :rtype: @@ -661,7 +592,7 @@ async def begin_update( @distributed_trace_async async def begin_update( - self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO], **kwargs: Any + self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.Policy]: """Updates the policy. @@ -669,19 +600,9 @@ async def begin_update( :param policy_name: Policy Id. Required. :type policy_name: str - :param input: Update Policy Input. Is either a UpdatePolicyInput type or a IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdatePolicyInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update Policy Input. Is either a UpdatePolicyInput type or a IO[bytes] type. + Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdatePolicyInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either Policy or the result of cls(response) :rtype: @@ -708,12 +629,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = self._deserialize("Policy", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -723,14 +645,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.Policy].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return AsyncLROPoller[_models.Policy]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protectable_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protectable_items_operations.py index ecd884c38447..da501dadb01d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protectable_items_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protectable_items_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,19 +20,19 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_protectable_items_operations import ( build_get_request, build_list_by_replication_protection_containers_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -51,13 +52,15 @@ class ReplicationProtectableItemsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, @@ -80,7 +83,6 @@ def list_by_replication_protection_containers( :type take: str :param skip_token: skipToken OData query parameter. Default value is None. :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectableItem or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ProtectableItem] @@ -92,7 +94,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectableItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -103,22 +105,20 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, take=take, skip_token=skip_token, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -130,13 +130,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ProtectableItemCollection", pipeline_response) @@ -146,11 +145,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -162,10 +161,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectableItems" - } - @distributed_trace_async async def get( self, fabric_name: str, protection_container_name: str, protectable_item_name: str, **kwargs: Any @@ -180,12 +175,11 @@ async def get( :type protection_container_name: str :param protectable_item_name: Protectable item name. Required. :type protectable_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ProtectableItem or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ProtectableItem :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -199,24 +193,22 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectableItem] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, protectable_item_name=protectable_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -225,13 +217,9 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ProtectableItem", pipeline_response) + deserialized = self._deserialize("ProtectableItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectableItems/{protectableItemName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protected_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protected_items_operations.py index 1307b0891636..be7196cd52c6 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protected_items_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protected_items_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_protected_items_operations import ( build_add_disks_request, build_apply_recovery_point_request, @@ -55,6 +58,7 @@ build_update_mobility_service_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -74,13 +78,15 @@ class ReplicationProtectedItemsOperations: # pylint: disable=too-many-public-me def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, **kwargs: Any ) -> AsyncIterable["_models.ReplicationProtectedItem"]: """Gets the list of Replication protected items. @@ -91,7 +97,6 @@ def list_by_replication_protection_containers( :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -104,7 +109,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectedItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -115,19 +120,17 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -139,13 +142,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ReplicationProtectedItemCollection", pipeline_response) @@ -155,11 +157,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -171,10 +173,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems" - } - @distributed_trace_async async def get( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any @@ -189,12 +187,11 @@ async def get( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectedItem or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItem :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -208,24 +205,22 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectedItem] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -234,26 +229,22 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - input: Union[_models.EnableProtectionInput, IO], + input: Union[_models.EnableProtectionInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -266,7 +257,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -276,47 +267,44 @@ async def _create_initial( else: _json = self._serialize.body(input, "EnableProtectionInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -344,14 +332,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -365,7 +345,7 @@ async def begin_create( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -381,18 +361,10 @@ async def begin_create( :param replicated_protected_item_name: A name for the replication protected item. Required. :type replicated_protected_item_name: str :param input: Enable Protection Input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -406,7 +378,7 @@ async def begin_create( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - input: Union[_models.EnableProtectionInput, IO], + input: Union[_models.EnableProtectionInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Enables protection. @@ -419,20 +391,9 @@ async def begin_create( :type protection_container_name: str :param replicated_protected_item_name: A name for the replication protected item. Required. :type replicated_protected_item_name: str - :param input: Enable Protection Input. Is either a EnableProtectionInput type or a IO type. - Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableProtectionInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Enable Protection Input. Is either a EnableProtectionInput type or a IO[bytes] + type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableProtectionInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -461,12 +422,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -476,22 +438,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _purge_initial( # pylint: disable=inconsistent-return-statements + async def _purge_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -503,40 +463,43 @@ async def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_purge( @@ -554,14 +517,6 @@ async def begin_purge( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -575,7 +530,7 @@ async def begin_purge( 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._purge_initial( # type: ignore + raw_result = await self._purge_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, @@ -585,11 +540,12 @@ async def begin_purge( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -598,27 +554,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO], + update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -631,7 +583,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -641,47 +593,44 @@ async def _update_initial( else: _json = self._serialize.body(update_protection_input, "UpdateReplicationProtectedItemInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -710,14 +659,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -731,7 +672,7 @@ async def begin_update( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_protection_input: IO, + update_protection_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -747,18 +688,10 @@ async def begin_update( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param update_protection_input: Update protection input. Required. - :type update_protection_input: IO + :type update_protection_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -772,7 +705,7 @@ async def begin_update( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO], + update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Updates the replication protected item settings. @@ -786,20 +719,10 @@ async def begin_update( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param update_protection_input: Update protection input. Is either a - UpdateReplicationProtectedItemInput type or a IO type. Required. + UpdateReplicationProtectedItemInput type or a IO[bytes] type. Required. :type update_protection_input: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateReplicationProtectedItemInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateReplicationProtectedItemInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -828,12 +751,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -843,27 +767,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _add_disks_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - add_disks_input: Union[_models.AddDisksInput, IO], + add_disks_input: Union[_models.AddDisksInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -876,7 +798,7 @@ async def _add_disks_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -886,47 +808,44 @@ async def _add_disks_initial( else: _json = self._serialize.body(add_disks_input, "AddDisksInput") - request = build_add_disks_request( + _request = build_add_disks_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._add_disks_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _add_disks_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/addDisks" - } + return deserialized # type: ignore @overload async def begin_add_disks( @@ -954,14 +873,6 @@ async def begin_add_disks( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -975,7 +886,7 @@ async def begin_add_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - add_disks_input: IO, + add_disks_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -991,18 +902,10 @@ async def begin_add_disks( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param add_disks_input: Add disks input. Required. - :type add_disks_input: IO + :type add_disks_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1016,7 +919,7 @@ async def begin_add_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - add_disks_input: Union[_models.AddDisksInput, IO], + add_disks_input: Union[_models.AddDisksInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Add disk(s) for protection. @@ -1029,19 +932,10 @@ async def begin_add_disks( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param add_disks_input: Add disks input. Is either a AddDisksInput type or a IO type. Required. - :type add_disks_input: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param add_disks_input: Add disks input. Is either a AddDisksInput type or a IO[bytes] type. + Required. + :type add_disks_input: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1070,12 +964,13 @@ async def begin_add_disks( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1085,27 +980,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_add_disks.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/addDisks" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _apply_recovery_point_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO], + apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1118,7 +1011,7 @@ async def _apply_recovery_point_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1128,47 +1021,44 @@ async def _apply_recovery_point_initial( else: _json = self._serialize.body(apply_recovery_point_input, "ApplyRecoveryPointInput") - request = build_apply_recovery_point_request( + _request = build_apply_recovery_point_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._apply_recovery_point_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _apply_recovery_point_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/applyRecoveryPoint" - } + return deserialized # type: ignore @overload async def begin_apply_recovery_point( @@ -1197,14 +1087,6 @@ async def begin_apply_recovery_point( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1218,7 +1100,7 @@ async def begin_apply_recovery_point( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - apply_recovery_point_input: IO, + apply_recovery_point_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1234,18 +1116,10 @@ async def begin_apply_recovery_point( :param replicated_protected_item_name: The replicated protected item name. Required. :type replicated_protected_item_name: str :param apply_recovery_point_input: The ApplyRecoveryPointInput. Required. - :type apply_recovery_point_input: IO + :type apply_recovery_point_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1259,7 +1133,7 @@ async def begin_apply_recovery_point( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO], + apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Change or apply recovery point. @@ -1273,20 +1147,9 @@ async def begin_apply_recovery_point( :param replicated_protected_item_name: The replicated protected item name. Required. :type replicated_protected_item_name: str :param apply_recovery_point_input: The ApplyRecoveryPointInput. Is either a - ApplyRecoveryPointInput type or a IO type. Required. + ApplyRecoveryPointInput type or a IO[bytes] type. Required. :type apply_recovery_point_input: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1315,12 +1178,13 @@ async def begin_apply_recovery_point( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1330,22 +1194,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_apply_recovery_point.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/applyRecoveryPoint" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _failover_cancel_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1357,46 +1219,43 @@ async def _failover_cancel_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_cancel_request( + _request = build_failover_cancel_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_cancel_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _failover_cancel_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCancel" - } + return deserialized # type: ignore @distributed_trace_async async def begin_failover_cancel( @@ -1412,14 +1271,6 @@ async def begin_failover_cancel( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1445,12 +1296,13 @@ async def begin_failover_cancel( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1460,22 +1312,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_cancel.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCancel" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _failover_commit_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1487,46 +1337,43 @@ async def _failover_commit_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_commit_request( + _request = build_failover_commit_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_commit_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _failover_commit_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCommit" - } + return deserialized # type: ignore @distributed_trace_async async def begin_failover_commit( @@ -1542,14 +1389,6 @@ async def begin_failover_commit( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1575,12 +1414,13 @@ async def begin_failover_commit( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1590,27 +1430,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_commit.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCommit" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _planned_failover_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.PlannedFailoverInput, IO], + failover_input: Union[_models.PlannedFailoverInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1623,7 +1461,7 @@ async def _planned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1633,47 +1471,44 @@ async def _planned_failover_initial( else: _json = self._serialize.body(failover_input, "PlannedFailoverInput") - request = build_planned_failover_request( + _request = build_planned_failover_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._planned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _planned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/plannedFailover" - } + return deserialized # type: ignore @overload async def begin_planned_failover( @@ -1701,14 +1536,6 @@ async def begin_planned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1722,7 +1549,7 @@ async def begin_planned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: IO, + failover_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1738,18 +1565,10 @@ async def begin_planned_failover( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param failover_input: Planned failover input. Required. - :type failover_input: IO + :type failover_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1763,7 +1582,7 @@ async def begin_planned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.PlannedFailoverInput, IO], + failover_input: Union[_models.PlannedFailoverInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Execute planned failover. @@ -1776,21 +1595,10 @@ async def begin_planned_failover( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param failover_input: Planned failover input. Is either a PlannedFailoverInput type or a IO - type. Required. + :param failover_input: Planned failover input. Is either a PlannedFailoverInput type or a + IO[bytes] type. Required. :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.PlannedFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1819,12 +1627,13 @@ async def begin_planned_failover( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1834,27 +1643,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_planned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/plannedFailover" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements + async def _delete_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - disable_protection_input: Union[_models.DisableProtectionInput, IO], + disable_protection_input: Union[_models.DisableProtectionInput, IO[bytes]], **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1867,7 +1674,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1877,41 +1684,44 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements else: _json = self._serialize.body(disable_protection_input, "DisableProtectionInput") - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/remove" - } + return deserialized # type: ignore @overload async def begin_delete( @@ -1941,14 +1751,6 @@ async def begin_delete( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1960,7 +1762,7 @@ async def begin_delete( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - disable_protection_input: IO, + disable_protection_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1977,18 +1779,10 @@ async def begin_delete( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param disable_protection_input: Disable protection input. Required. - :type disable_protection_input: IO + :type disable_protection_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -2000,7 +1794,7 @@ async def begin_delete( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - disable_protection_input: Union[_models.DisableProtectionInput, IO], + disable_protection_input: Union[_models.DisableProtectionInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[None]: """Disables protection. @@ -2015,20 +1809,9 @@ async def begin_delete( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param disable_protection_input: Disable protection input. Is either a DisableProtectionInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type disable_protection_input: - ~azure.mgmt.recoveryservicessiterecovery.models.DisableProtectionInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.DisableProtectionInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -2043,7 +1826,7 @@ async def begin_delete( 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, @@ -2055,11 +1838,12 @@ async def begin_delete( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -2068,27 +1852,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/remove" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _remove_disks_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - remove_disks_input: Union[_models.RemoveDisksInput, IO], + remove_disks_input: Union[_models.RemoveDisksInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2101,7 +1881,7 @@ async def _remove_disks_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2111,47 +1891,44 @@ async def _remove_disks_initial( else: _json = self._serialize.body(remove_disks_input, "RemoveDisksInput") - request = build_remove_disks_request( + _request = build_remove_disks_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._remove_disks_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _remove_disks_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/removeDisks" - } + return deserialized # type: ignore @overload async def begin_remove_disks( @@ -2179,14 +1956,6 @@ async def begin_remove_disks( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2200,7 +1969,7 @@ async def begin_remove_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - remove_disks_input: IO, + remove_disks_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2216,18 +1985,10 @@ async def begin_remove_disks( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param remove_disks_input: Remove disks input. Required. - :type remove_disks_input: IO + :type remove_disks_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2241,7 +2002,7 @@ async def begin_remove_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - remove_disks_input: Union[_models.RemoveDisksInput, IO], + remove_disks_input: Union[_models.RemoveDisksInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Removes disk(s). @@ -2254,21 +2015,10 @@ async def begin_remove_disks( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param remove_disks_input: Remove disks input. Is either a RemoveDisksInput type or a IO type. - Required. + :param remove_disks_input: Remove disks input. Is either a RemoveDisksInput type or a IO[bytes] + type. Required. :type remove_disks_input: ~azure.mgmt.recoveryservicessiterecovery.models.RemoveDisksInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2297,12 +2047,13 @@ async def begin_remove_disks( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2312,22 +2063,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_remove_disks.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/removeDisks" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _repair_replication_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2339,46 +2088,43 @@ async def _repair_replication_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_repair_replication_request( + _request = build_repair_replication_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._repair_replication_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _repair_replication_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/repairReplication" - } + return deserialized # type: ignore @distributed_trace_async async def begin_repair_replication( @@ -2395,14 +2141,6 @@ async def begin_repair_replication( :type protection_container_name: str :param replicated_protected_item_name: The name of the replication protected item. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2428,12 +2166,13 @@ async def begin_repair_replication( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2443,27 +2182,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_repair_replication.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/repairReplication" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _reprotect_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - reprotect_input: Union[_models.ReverseReplicationInput, IO], + reprotect_input: Union[_models.ReverseReplicationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2476,7 +2213,7 @@ async def _reprotect_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2486,47 +2223,44 @@ async def _reprotect_initial( else: _json = self._serialize.body(reprotect_input, "ReverseReplicationInput") - request = build_reprotect_request( + _request = build_reprotect_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._reprotect_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _reprotect_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/reProtect" - } + return deserialized # type: ignore @overload async def begin_reprotect( @@ -2539,7 +2273,7 @@ async def begin_reprotect( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: - """Execute Reverse Replication\Reprotect. + """Execute Reverse Replication\\Reprotect. Operation to reprotect or reverse replicate a failed over replication protected item. @@ -2554,14 +2288,6 @@ async def begin_reprotect( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2575,12 +2301,12 @@ async def begin_reprotect( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - reprotect_input: IO, + reprotect_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: - """Execute Reverse Replication\Reprotect. + """Execute Reverse Replication\\Reprotect. Operation to reprotect or reverse replicate a failed over replication protected item. @@ -2591,18 +2317,10 @@ async def begin_reprotect( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param reprotect_input: Reverse replication input. Required. - :type reprotect_input: IO + :type reprotect_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2616,10 +2334,10 @@ async def begin_reprotect( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - reprotect_input: Union[_models.ReverseReplicationInput, IO], + reprotect_input: Union[_models.ReverseReplicationInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: - """Execute Reverse Replication\Reprotect. + """Execute Reverse Replication\\Reprotect. Operation to reprotect or reverse replicate a failed over replication protected item. @@ -2630,20 +2348,9 @@ async def begin_reprotect( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param reprotect_input: Reverse replication input. Is either a ReverseReplicationInput type or - a IO type. Required. + a IO[bytes] type. Required. :type reprotect_input: ~azure.mgmt.recoveryservicessiterecovery.models.ReverseReplicationInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2672,12 +2379,13 @@ async def begin_reprotect( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2687,27 +2395,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_reprotect.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/reProtect" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _resolve_health_errors_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resolve_health_input: Union[_models.ResolveHealthInput, IO], + resolve_health_input: Union[_models.ResolveHealthInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2720,7 +2426,7 @@ async def _resolve_health_errors_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2730,47 +2436,44 @@ async def _resolve_health_errors_initial( else: _json = self._serialize.body(resolve_health_input, "ResolveHealthInput") - request = build_resolve_health_errors_request( + _request = build_resolve_health_errors_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resolve_health_errors_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _resolve_health_errors_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/resolveHealthErrors" - } + return deserialized # type: ignore @overload async def begin_resolve_health_errors( @@ -2798,14 +2501,6 @@ async def begin_resolve_health_errors( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2819,7 +2514,7 @@ async def begin_resolve_health_errors( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resolve_health_input: IO, + resolve_health_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2835,18 +2530,10 @@ async def begin_resolve_health_errors( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param resolve_health_input: Health issue input object. Required. - :type resolve_health_input: IO + :type resolve_health_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2860,7 +2547,7 @@ async def begin_resolve_health_errors( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resolve_health_input: Union[_models.ResolveHealthInput, IO], + resolve_health_input: Union[_models.ResolveHealthInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Resolve health errors. @@ -2874,20 +2561,9 @@ async def begin_resolve_health_errors( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param resolve_health_input: Health issue input object. Is either a ResolveHealthInput type or - a IO type. Required. + a IO[bytes] type. Required. :type resolve_health_input: ~azure.mgmt.recoveryservicessiterecovery.models.ResolveHealthInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2916,12 +2592,13 @@ async def begin_resolve_health_errors( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2931,27 +2608,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resolve_health_errors.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/resolveHealthErrors" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _switch_provider_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - switch_provider_input: Union[_models.SwitchProviderInput, IO], + switch_provider_input: Union[_models.SwitchProviderInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2964,7 +2639,7 @@ async def _switch_provider_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2974,47 +2649,44 @@ async def _switch_provider_initial( else: _json = self._serialize.body(switch_provider_input, "SwitchProviderInput") - request = build_switch_provider_request( + _request = build_switch_provider_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._switch_provider_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _switch_provider_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/switchProvider" - } + return deserialized # type: ignore @overload async def begin_switch_provider( @@ -3043,14 +2715,6 @@ async def begin_switch_provider( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3064,7 +2728,7 @@ async def begin_switch_provider( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - switch_provider_input: IO, + switch_provider_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -3080,18 +2744,10 @@ async def begin_switch_provider( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param switch_provider_input: Switch provider input. Required. - :type switch_provider_input: IO + :type switch_provider_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3105,7 +2761,7 @@ async def begin_switch_provider( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - switch_provider_input: Union[_models.SwitchProviderInput, IO], + switch_provider_input: Union[_models.SwitchProviderInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Execute switch provider. @@ -3119,20 +2775,9 @@ async def begin_switch_provider( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param switch_provider_input: Switch provider input. Is either a SwitchProviderInput type or a - IO type. Required. + IO[bytes] type. Required. :type switch_provider_input: - ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProviderInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProviderInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3161,12 +2806,13 @@ async def begin_switch_provider( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3179,27 +2825,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_switch_provider.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/switchProvider" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _test_failover_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - testfailover_input: Union[_models.TestFailoverInput, IO], + testfailover_input: Union[_models.TestFailoverInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3212,7 +2856,7 @@ async def _test_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3222,47 +2866,44 @@ async def _test_failover_initial( else: _json = self._serialize.body(testfailover_input, "TestFailoverInput") - request = build_test_failover_request( + _request = build_test_failover_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailover" - } + return deserialized # type: ignore @overload async def begin_test_failover( @@ -3290,14 +2931,6 @@ async def begin_test_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3311,7 +2944,7 @@ async def begin_test_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - testfailover_input: IO, + testfailover_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -3327,18 +2960,10 @@ async def begin_test_failover( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param testfailover_input: Test failover input. Required. - :type testfailover_input: IO + :type testfailover_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3352,7 +2977,7 @@ async def begin_test_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - testfailover_input: Union[_models.TestFailoverInput, IO], + testfailover_input: Union[_models.TestFailoverInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Execute test failover. @@ -3365,21 +2990,10 @@ async def begin_test_failover( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param testfailover_input: Test failover input. Is either a TestFailoverInput type or a IO - type. Required. + :param testfailover_input: Test failover input. Is either a TestFailoverInput type or a + IO[bytes] type. Required. :type testfailover_input: ~azure.mgmt.recoveryservicessiterecovery.models.TestFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3408,12 +3022,13 @@ async def begin_test_failover( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3423,27 +3038,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailover" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _test_failover_cleanup_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - cleanup_input: Union[_models.TestFailoverCleanupInput, IO], + cleanup_input: Union[_models.TestFailoverCleanupInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3456,7 +3069,7 @@ async def _test_failover_cleanup_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3466,47 +3079,44 @@ async def _test_failover_cleanup_initial( else: _json = self._serialize.body(cleanup_input, "TestFailoverCleanupInput") - request = build_test_failover_cleanup_request( + _request = build_test_failover_cleanup_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_cleanup_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _test_failover_cleanup_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailoverCleanup" - } + return deserialized # type: ignore @overload async def begin_test_failover_cleanup( @@ -3534,14 +3144,6 @@ async def begin_test_failover_cleanup( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3555,7 +3157,7 @@ async def begin_test_failover_cleanup( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - cleanup_input: IO, + cleanup_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -3571,18 +3173,10 @@ async def begin_test_failover_cleanup( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param cleanup_input: Test failover cleanup input. Required. - :type cleanup_input: IO + :type cleanup_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3596,7 +3190,7 @@ async def begin_test_failover_cleanup( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - cleanup_input: Union[_models.TestFailoverCleanupInput, IO], + cleanup_input: Union[_models.TestFailoverCleanupInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Execute test failover cleanup. @@ -3610,20 +3204,9 @@ async def begin_test_failover_cleanup( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param cleanup_input: Test failover cleanup input. Is either a TestFailoverCleanupInput type or - a IO type. Required. + a IO[bytes] type. Required. :type cleanup_input: ~azure.mgmt.recoveryservicessiterecovery.models.TestFailoverCleanupInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3652,12 +3235,13 @@ async def begin_test_failover_cleanup( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3667,27 +3251,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover_cleanup.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailoverCleanup" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _unplanned_failover_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.UnplannedFailoverInput, IO], + failover_input: Union[_models.UnplannedFailoverInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3700,7 +3282,7 @@ async def _unplanned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3710,47 +3292,44 @@ async def _unplanned_failover_initial( else: _json = self._serialize.body(failover_input, "UnplannedFailoverInput") - request = build_unplanned_failover_request( + _request = build_unplanned_failover_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._unplanned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _unplanned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/unplannedFailover" - } + return deserialized # type: ignore @overload async def begin_unplanned_failover( @@ -3778,14 +3357,6 @@ async def begin_unplanned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3799,7 +3370,7 @@ async def begin_unplanned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: IO, + failover_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -3815,18 +3386,10 @@ async def begin_unplanned_failover( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param failover_input: Failover input. Required. - :type failover_input: IO + :type failover_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3840,7 +3403,7 @@ async def begin_unplanned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.UnplannedFailoverInput, IO], + failover_input: Union[_models.UnplannedFailoverInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Execute unplanned failover. @@ -3853,21 +3416,10 @@ async def begin_unplanned_failover( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param failover_input: Failover input. Is either a UnplannedFailoverInput type or a IO type. - Required. + :param failover_input: Failover input. Is either a UnplannedFailoverInput type or a IO[bytes] + type. Required. :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.UnplannedFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3896,12 +3448,13 @@ async def begin_unplanned_failover( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3911,27 +3464,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_unplanned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/unplannedFailover" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _update_appliance_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO], + appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3944,7 +3495,7 @@ async def _update_appliance_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3954,47 +3505,44 @@ async def _update_appliance_initial( else: _json = self._serialize.body(appliance_update_input, "UpdateApplianceForReplicationProtectedItemInput") - request = build_update_appliance_request( + _request = build_update_appliance_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_appliance_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_appliance_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateAppliance" - } + return deserialized # type: ignore @overload async def begin_update_appliance( @@ -4023,14 +3571,6 @@ async def begin_update_appliance( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4044,7 +3584,7 @@ async def begin_update_appliance( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - appliance_update_input: IO, + appliance_update_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4060,18 +3600,10 @@ async def begin_update_appliance( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param appliance_update_input: Appliance update protection input. Required. - :type appliance_update_input: IO + :type appliance_update_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4085,7 +3617,7 @@ async def begin_update_appliance( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO], + appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Updates appliance for replication protected Item. @@ -4099,21 +3631,10 @@ async def begin_update_appliance( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param appliance_update_input: Appliance update protection input. Is either a - UpdateApplianceForReplicationProtectedItemInput type or a IO type. Required. + UpdateApplianceForReplicationProtectedItemInput type or a IO[bytes] type. Required. :type appliance_update_input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateApplianceForReplicationProtectedItemInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4142,12 +3663,13 @@ async def begin_update_appliance( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -4157,27 +3679,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update_appliance.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateAppliance" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _update_mobility_service_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO], + update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -4190,7 +3710,7 @@ async def _update_mobility_service_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -4200,51 +3720,48 @@ async def _update_mobility_service_initial( else: _json = self._serialize.body(update_mobility_service_request, "UpdateMobilityServiceRequest") - request = build_update_mobility_service_request( + _request = build_update_mobility_service_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_mobility_service_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None response_headers = {} - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) - if response.status_code == 202: response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - if cls: - return cls(pipeline_response, deserialized, response_headers) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) - return deserialized + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore - _update_mobility_service_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateMobilityService" - } + return deserialized # type: ignore @overload async def begin_update_mobility_service( @@ -4277,14 +3794,6 @@ async def begin_update_mobility_service( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4298,7 +3807,7 @@ async def begin_update_mobility_service( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_mobility_service_request: IO, + update_mobility_service_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4318,18 +3827,10 @@ async def begin_update_mobility_service( :type replicated_protected_item_name: str :param update_mobility_service_request: Request to update the mobility service on the protected item. Required. - :type update_mobility_service_request: IO + :type update_mobility_service_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4343,7 +3844,7 @@ async def begin_update_mobility_service( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO], + update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ReplicationProtectedItem]: """Update the mobility service on a protected item. @@ -4360,20 +3861,9 @@ async def begin_update_mobility_service( be updated. Required. :type replicated_protected_item_name: str :param update_mobility_service_request: Request to update the mobility service on the protected - item. Is either a UpdateMobilityServiceRequest type or a IO type. Required. + item. Is either a UpdateMobilityServiceRequest type or a IO[bytes] type. Required. :type update_mobility_service_request: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMobilityServiceRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMobilityServiceRequest or IO[bytes] :return: An instance of AsyncLROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4402,12 +3892,13 @@ async def begin_update_mobility_service( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -4419,17 +3910,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update_mobility_service.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateMobilityService" - } + return AsyncLROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list( @@ -4444,7 +3933,6 @@ def list( :type skip_token: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4457,7 +3945,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectedItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -4468,19 +3956,17 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -4492,13 +3978,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ReplicationProtectedItemCollection", pipeline_response) @@ -4508,11 +3993,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -4523,7 +4008,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectedItems" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_clusters_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_clusters_operations.py new file mode 100644 index 000000000000..9a17a4728795 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_clusters_operations.py @@ -0,0 +1,1980 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from io import IOBase +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +import urllib.parse + +from azure.core import AsyncPipelineClient +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.core.rest import AsyncHttpResponse, HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models as _models +from ..._serialization import Deserializer, Serializer +from ...operations._replication_protection_clusters_operations import ( + build_apply_recovery_point_request, + build_create_request, + build_failover_commit_request, + build_get_operation_results_request, + build_get_request, + build_list_by_replication_protection_containers_request, + build_list_request, + build_purge_request, + build_repair_replication_request, + build_test_failover_cleanup_request, + build_test_failover_request, + build_unplanned_failover_request, +) +from .._configuration import SiteRecoveryManagementClientConfiguration + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class ReplicationProtectionClustersOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.recoveryservicessiterecovery.aio.SiteRecoveryManagementClient`'s + :attr:`replication_protection_clusters` attribute. + """ + + models = _models + + 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: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( # pylint: disable=name-too-long + self, resource_name: str, fabric_name: str, protection_container_name: str, **kwargs: Any + ) -> AsyncIterable["_models.ReplicationProtectionCluster"]: + """Gets the list of Replication protection clusters in fabric, container. + + Gets the list of ASR replication protected clusters in the protection container. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :return: An iterator like instance of either ReplicationProtectionCluster or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionClusterCollection] = 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_list_by_replication_protection_containers_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + 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 + ) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("ReplicationProtectionClusterCollection", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + @distributed_trace_async + async def get( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> _models.ReplicationProtectionCluster: + """Gets the details of a Replication protection cluster. + + Gets the details of an ASR replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: ReplicationProtectionCluster or the result of cls(response) + :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster + :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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + async def _create_initial( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: Union[_models.ReplicationProtectionCluster, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(replication_protection_cluster, (IOBase, bytes)): + _content = replication_protection_cluster + else: + _json = self._serialize.body(replication_protection_cluster, "ReplicationProtectionCluster") + + _request = build_create_request( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_create( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: _models.ReplicationProtectionCluster, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Create Replication protection Cluster. + + The operation to create an ASR replication protection cluster item. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param replication_protection_cluster: Create replication protection cluster Input. Required. + :type replication_protection_cluster: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_create( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Create Replication protection Cluster. + + The operation to create an ASR replication protection cluster item. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param replication_protection_cluster: Create replication protection cluster Input. Required. + :type replication_protection_cluster: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_create( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: Union[_models.ReplicationProtectionCluster, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Create Replication protection Cluster. + + The operation to create an ASR replication protection cluster item. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param replication_protection_cluster: Create replication protection cluster Input. Is either a + ReplicationProtectionCluster type or a IO[bytes] type. Required. + :type replication_protection_cluster: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster or IO[bytes] + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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_initial( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + replication_protection_cluster=replication_protection_cluster, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _purge_initial( + self, fabric_name: str, protection_container_name: str, replication_protection_cluster_name: str, **kwargs: Any + ) -> AsyncIterator[bytes]: + 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) + + _request = build_purge_request( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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, 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @distributed_trace_async + async def begin_purge( + self, fabric_name: str, protection_container_name: str, replication_protection_cluster_name: str, **kwargs: Any + ) -> AsyncLROPoller[None]: + """Purge the replication protection cluster. + + The operation to purge the replication protection cluster. This operation will force delete the + replication protection cluster. Use the remove operation on replication protection cluster to + perform a clean disable replication protection cluster. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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._purge_initial( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + api_version=api_version, + 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 + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **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 _apply_recovery_point_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: Union[_models.ApplyClusterRecoveryPointInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(apply_cluster_recovery_point_input, (IOBase, bytes)): + _content = apply_cluster_recovery_point_input + else: + _json = self._serialize.body(apply_cluster_recovery_point_input, "ApplyClusterRecoveryPointInput") + + _request = build_apply_recovery_point_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_apply_recovery_point( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: _models.ApplyClusterRecoveryPointInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute the change recovery point operation for cluster. + + Operation to apply a new cluster recovery point on the Protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param apply_cluster_recovery_point_input: Apply recovery point input. Required. + :type apply_cluster_recovery_point_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_apply_recovery_point( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute the change recovery point operation for cluster. + + Operation to apply a new cluster recovery point on the Protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param apply_cluster_recovery_point_input: Apply recovery point input. Required. + :type apply_cluster_recovery_point_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_apply_recovery_point( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: Union[_models.ApplyClusterRecoveryPointInput, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute the change recovery point operation for cluster. + + Operation to apply a new cluster recovery point on the Protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param apply_cluster_recovery_point_input: Apply recovery point input. Is either a + ApplyClusterRecoveryPointInput type or a IO[bytes] type. Required. + :type apply_cluster_recovery_point_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointInput or IO[bytes] + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._apply_recovery_point_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + apply_cluster_recovery_point_input=apply_cluster_recovery_point_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _failover_commit_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> AsyncIterator[bytes]: + 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) + + _request = build_failover_commit_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @distributed_trace_async + async def begin_failover_commit( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute commit failover for cluster. + + Operation to initiate commit failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._failover_commit_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @distributed_trace_async + async def get_operation_results( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + job_id: str, + **kwargs: Any + ) -> _models.ReplicationProtectionCluster: + """Tracks the Replication protection cluster async operation. + + Track the results of an asynchronous operation on the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param job_id: job id to track. Required. + :type job_id: str + :return: ReplicationProtectionCluster or the result of cls(response) + :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster + :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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = kwargs.pop("cls", None) + + _request = build_get_operation_results_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + job_id=job_id, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + async def _repair_replication_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> AsyncIterator[bytes]: + 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) + + _request = build_repair_replication_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @distributed_trace_async + async def begin_repair_replication( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Resynchronize or repair replication of protection cluster. + + The operation to repair replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._repair_replication_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _test_failover_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterTestFailoverInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(failover_input, (IOBase, bytes)): + _content = failover_input + else: + _json = self._serialize.body(failover_input, "ClusterTestFailoverInput") + + _request = build_test_failover_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_test_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: _models.ClusterTestFailoverInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover for cluster. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Cluster test failover input body. Required. + :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_test_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover for cluster. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Cluster test failover input body. Required. + :type failover_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_test_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterTestFailoverInput, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover for cluster. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Cluster test failover input body. Is either a ClusterTestFailoverInput + type or a IO[bytes] type. Required. + :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverInput + or IO[bytes] + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._test_failover_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + failover_input=failover_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _test_failover_cleanup_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: Union[_models.ClusterTestFailoverCleanupInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(cleanup_input, (IOBase, bytes)): + _content = cleanup_input + else: + _json = self._serialize.body(cleanup_input, "ClusterTestFailoverCleanupInput") + + _request = build_test_failover_cleanup_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_test_failover_cleanup( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: _models.ClusterTestFailoverCleanupInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover cleanup for cluster. + + Operation to clean up the test failover of a replication protected cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param cleanup_input: Test failover cleanup input. Required. + :type cleanup_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverCleanupInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_test_failover_cleanup( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover cleanup for cluster. + + Operation to clean up the test failover of a replication protected cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param cleanup_input: Test failover cleanup input. Required. + :type cleanup_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_test_failover_cleanup( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: Union[_models.ClusterTestFailoverCleanupInput, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover cleanup for cluster. + + Operation to clean up the test failover of a replication protected cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param cleanup_input: Test failover cleanup input. Is either a ClusterTestFailoverCleanupInput + type or a IO[bytes] type. Required. + :type cleanup_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverCleanupInput or IO[bytes] + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._test_failover_cleanup_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + cleanup_input=cleanup_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _unplanned_failover_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterUnplannedFailoverInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(failover_input, (IOBase, bytes)): + _content = failover_input + else: + _json = self._serialize.body(failover_input, "ClusterUnplannedFailoverInput") + + _request = build_unplanned_failover_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_unplanned_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: _models.ClusterUnplannedFailoverInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute unplanned cluster failover. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Failover input. Required. + :type failover_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_unplanned_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute unplanned cluster failover. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Failover input. Required. + :type failover_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_unplanned_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterUnplannedFailoverInput, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.ReplicationProtectionCluster]: + """Execute unplanned cluster failover. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Failover input. Is either a ClusterUnplannedFailoverInput type or a + IO[bytes] type. Required. + :type failover_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverInput or IO[bytes] + :return: An instance of AsyncLROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._unplanned_failover_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + failover_input=failover_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @distributed_trace + def list( + self, resource_name: str, skip_token: Optional[str] = None, filter: Optional[str] = None, **kwargs: Any + ) -> AsyncIterable["_models.ReplicationProtectionCluster"]: + """Gets the list of Replication protection clusters in vault. + + Gets the list of ASR replication protected clusters in the vault. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param skip_token: The pagination token. Possible values: "FabricId" or "FabricId_CloudId" or + null. Default value is None. + :type skip_token: str + :param filter: OData filter options. Default value is None. + :type filter: str + :return: An iterator like instance of either ReplicationProtectionCluster or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionClusterCollection] = 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_list_request( + resource_name=resource_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + skip_token=skip_token, + filter=filter, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + 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 + ) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("ReplicationProtectionClusterCollection", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_container_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_container_mappings_operations.py index 0601f85b608f..9fc4f515f08a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_container_mappings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_container_mappings_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_protection_container_mappings_operations import ( build_create_request, build_delete_request, @@ -40,12 +43,13 @@ build_purge_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class ReplicationProtectionContainerMappingsOperations: +class ReplicationProtectionContainerMappingsOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -59,13 +63,15 @@ class ReplicationProtectionContainerMappingsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, **kwargs: Any ) -> AsyncIterable["_models.ProtectionContainerMapping"]: """Gets the list of protection container mappings for a protection container. @@ -76,7 +82,6 @@ def list_by_replication_protection_containers( :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -89,7 +94,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -100,19 +105,17 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -124,13 +127,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerMappingCollection", pipeline_response) @@ -140,11 +142,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -156,10 +158,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings" - } - @distributed_trace_async async def get( self, fabric_name: str, protection_container_name: str, mapping_name: str, **kwargs: Any @@ -174,12 +172,11 @@ async def get( :type protection_container_name: str :param mapping_name: Protection Container mapping name. Required. :type mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ProtectionContainerMapping or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainerMapping :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -193,24 +190,22 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerMapping] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -219,26 +214,22 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, - creation_input: Union[_models.CreateProtectionContainerMappingInput, IO], + creation_input: Union[_models.CreateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainerMapping]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -251,7 +242,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainerMapping]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -261,47 +252,44 @@ async def _create_initial( else: _json = self._serialize.body(creation_input, "CreateProtectionContainerMappingInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -330,14 +318,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -351,7 +331,7 @@ async def begin_create( fabric_name: str, protection_container_name: str, mapping_name: str, - creation_input: IO, + creation_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -367,18 +347,10 @@ async def begin_create( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param creation_input: Mapping creation input. Required. - :type creation_input: IO + :type creation_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -392,7 +364,7 @@ async def begin_create( fabric_name: str, protection_container_name: str, mapping_name: str, - creation_input: Union[_models.CreateProtectionContainerMappingInput, IO], + creation_input: Union[_models.CreateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ProtectionContainerMapping]: """Create protection container mapping. @@ -406,20 +378,10 @@ async def begin_create( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param creation_input: Mapping creation input. Is either a - CreateProtectionContainerMappingInput type or a IO type. Required. + CreateProtectionContainerMappingInput type or a IO[bytes] type. Required. :type creation_input: - ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerMappingInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -448,12 +410,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -463,22 +426,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ProtectionContainerMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return AsyncLROPoller[_models.ProtectionContainerMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _purge_initial( # pylint: disable=inconsistent-return-statements + async def _purge_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -490,40 +451,43 @@ async def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_purge( @@ -539,14 +503,6 @@ async def begin_purge( :type protection_container_name: str :param mapping_name: Protection container mapping name. Required. :type mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -560,7 +516,7 @@ async def begin_purge( 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._purge_initial( # type: ignore + raw_result = await self._purge_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, @@ -570,11 +526,12 @@ async def begin_purge( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -583,27 +540,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, - update_input: Union[_models.UpdateProtectionContainerMappingInput, IO], + update_input: Union[_models.UpdateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainerMapping]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -616,7 +569,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainerMapping]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -626,47 +579,44 @@ async def _update_initial( else: _json = self._serialize.body(update_input, "UpdateProtectionContainerMappingInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -695,14 +645,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -716,7 +658,7 @@ async def begin_update( fabric_name: str, protection_container_name: str, mapping_name: str, - update_input: IO, + update_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -732,18 +674,10 @@ async def begin_update( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param update_input: Mapping update input. Required. - :type update_input: IO + :type update_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -757,7 +691,7 @@ async def begin_update( fabric_name: str, protection_container_name: str, mapping_name: str, - update_input: Union[_models.UpdateProtectionContainerMappingInput, IO], + update_input: Union[_models.UpdateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ProtectionContainerMapping]: """Update protection container mapping. @@ -771,20 +705,10 @@ async def begin_update( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param update_input: Mapping update input. Is either a UpdateProtectionContainerMappingInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type update_input: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateProtectionContainerMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateProtectionContainerMappingInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -813,12 +737,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -828,27 +753,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ProtectionContainerMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return AsyncLROPoller[_models.ProtectionContainerMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements + async def _delete_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, - removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO], + removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO[bytes]], **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -861,7 +784,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -871,41 +794,44 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements else: _json = self._serialize.body(removal_input, "RemoveProtectionContainerMappingInput") - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}/remove" - } + return deserialized # type: ignore @overload async def begin_delete( @@ -934,14 +860,6 @@ async def begin_delete( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -953,7 +871,7 @@ async def begin_delete( fabric_name: str, protection_container_name: str, mapping_name: str, - removal_input: IO, + removal_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -969,18 +887,10 @@ async def begin_delete( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param removal_input: Removal input. Required. - :type removal_input: IO + :type removal_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -992,7 +902,7 @@ async def begin_delete( fabric_name: str, protection_container_name: str, mapping_name: str, - removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO], + removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[None]: """Remove protection container mapping. @@ -1006,20 +916,10 @@ async def begin_delete( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param removal_input: Removal input. Is either a RemoveProtectionContainerMappingInput type or - a IO type. Required. + a IO[bytes] type. Required. :type removal_input: - ~azure.mgmt.recoveryservicessiterecovery.models.RemoveProtectionContainerMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.RemoveProtectionContainerMappingInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1034,7 +934,7 @@ async def begin_delete( 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, @@ -1046,11 +946,12 @@ async def begin_delete( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -1059,17 +960,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}/remove" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainerMapping"]: @@ -1077,7 +974,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainerMappi Lists the protection container mappings in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -1090,7 +986,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainerMappi api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1101,17 +997,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainerMappi def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1123,13 +1017,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerMappingCollection", pipeline_response) @@ -1139,11 +1032,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1154,7 +1047,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionContainerMappings" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_containers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_containers_operations.py index 497c962a8b09..63aa0bd90615 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_containers_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_containers_operations.py @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_protection_containers_operations import ( build_create_request, build_delete_request, @@ -38,14 +41,16 @@ build_get_request, build_list_by_replication_fabrics_request, build_list_request, + build_switch_cluster_protection_request, build_switch_protection_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class ReplicationProtectionContainersOperations: +class ReplicationProtectionContainersOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -59,10 +64,12 @@ class ReplicationProtectionContainersOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics( @@ -74,7 +81,6 @@ def list_by_replication_fabrics( :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainer or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] @@ -86,7 +92,7 @@ def list_by_replication_fabrics( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -97,18 +103,16 @@ def list_by_replication_fabrics( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -120,13 +124,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerCollection", pipeline_response) @@ -136,11 +139,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -152,10 +155,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers" - } - @distributed_trace_async async def get(self, fabric_name: str, protection_container_name: str, **kwargs: Any) -> _models.ProtectionContainer: """Gets the protection container details. @@ -166,12 +165,11 @@ async def get(self, fabric_name: str, protection_container_name: str, **kwargs: :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ProtectionContainer or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -185,23 +183,21 @@ async def get(self, fabric_name: str, protection_container_name: str, **kwargs: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainer] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -210,25 +206,21 @@ async def get(self, fabric_name: str, protection_container_name: str, **kwargs: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, protection_container_name: str, - creation_input: Union[_models.CreateProtectionContainerInput, IO], + creation_input: Union[_models.CreateProtectionContainerInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainer]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -241,7 +233,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainer]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -251,46 +243,43 @@ async def _create_initial( else: _json = self._serialize.body(creation_input, "CreateProtectionContainerInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -316,14 +305,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -336,7 +317,7 @@ async def begin_create( self, fabric_name: str, protection_container_name: str, - creation_input: IO, + creation_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -350,18 +331,10 @@ async def begin_create( :param protection_container_name: Unique protection container ARM name. Required. :type protection_container_name: str :param creation_input: Creation input. Required. - :type creation_input: IO + :type creation_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -374,7 +347,7 @@ async def begin_create( self, fabric_name: str, protection_container_name: str, - creation_input: Union[_models.CreateProtectionContainerInput, IO], + creation_input: Union[_models.CreateProtectionContainerInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ProtectionContainer]: """Create a protection container. @@ -385,21 +358,10 @@ async def begin_create( :type fabric_name: str :param protection_container_name: Unique protection container ARM name. Required. :type protection_container_name: str - :param creation_input: Creation input. Is either a CreateProtectionContainerInput type or a IO - type. Required. + :param creation_input: Creation input. Is either a CreateProtectionContainerInput type or a + IO[bytes] type. Required. :type creation_input: - ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -427,12 +389,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -442,26 +405,24 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ProtectionContainer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}" - } + return AsyncLROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _discover_protectable_item_initial( self, fabric_name: str, protection_container_name: str, - discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO], + discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainer]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -474,7 +435,7 @@ async def _discover_protectable_item_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainer]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -484,46 +445,43 @@ async def _discover_protectable_item_initial( else: _json = self._serialize.body(discover_protectable_item_request, "DiscoverProtectableItemRequest") - request = build_discover_protectable_item_request( + _request = build_discover_protectable_item_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._discover_protectable_item_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _discover_protectable_item_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/discoverProtectableItem" - } + return deserialized # type: ignore @overload async def begin_discover_protectable_item( @@ -550,14 +508,6 @@ async def begin_discover_protectable_item( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -570,7 +520,7 @@ async def begin_discover_protectable_item( self, fabric_name: str, protection_container_name: str, - discover_protectable_item_request: IO, + discover_protectable_item_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -585,18 +535,10 @@ async def begin_discover_protectable_item( :type protection_container_name: str :param discover_protectable_item_request: The request object to add a protectable item. Required. - :type discover_protectable_item_request: IO + :type discover_protectable_item_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -609,7 +551,7 @@ async def begin_discover_protectable_item( self, fabric_name: str, protection_container_name: str, - discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO], + discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ProtectionContainer]: """Adds a protectable item to the replication protection container. @@ -621,20 +563,9 @@ async def begin_discover_protectable_item( :param protection_container_name: The name of the protection container. Required. :type protection_container_name: str :param discover_protectable_item_request: The request object to add a protectable item. Is - either a DiscoverProtectableItemRequest type or a IO type. Required. + either a DiscoverProtectableItemRequest type or a IO[bytes] type. Required. :type discover_protectable_item_request: - ~azure.mgmt.recoveryservicessiterecovery.models.DiscoverProtectableItemRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.DiscoverProtectableItemRequest or IO[bytes] :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -662,12 +593,13 @@ async def begin_discover_protectable_item( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -677,22 +609,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ProtectionContainer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_discover_protectable_item.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/discoverProtectableItem" - } + return AsyncLROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements + async def _delete_initial( self, fabric_name: str, protection_container_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -704,39 +634,42 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/remove" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete( @@ -750,14 +683,6 @@ async def begin_delete( :type fabric_name: str :param protection_container_name: Unique protection container ARM name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -771,7 +696,7 @@ async def begin_delete( 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, api_version=api_version, @@ -780,11 +705,12 @@ async def begin_delete( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -793,26 +719,246 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(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 _switch_cluster_protection_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: Union[_models.SwitchClusterProtectionInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(switch_input, (IOBase, bytes)): + _content = switch_input + else: + _json = self._serialize.body(switch_input, "SwitchClusterProtectionInput") + + _request = build_switch_cluster_protection_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_switch_cluster_protection( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: _models.SwitchClusterProtectionInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ProtectionContainer]: + """Switches protection from one container to another. + + Operation to switch protection from one container to another. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param switch_input: Switch protection input. Required. + :type switch_input: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionInput + :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 either ProtectionContainer or the result of + cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_switch_cluster_protection( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.ProtectionContainer]: + """Switches protection from one container to another. + + Operation to switch protection from one container to another. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param switch_input: Switch protection input. Required. + :type switch_input: 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 either ProtectionContainer or the result of + cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_switch_cluster_protection( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: Union[_models.SwitchClusterProtectionInput, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.ProtectionContainer]: + """Switches protection from one container to another. + + Operation to switch protection from one container to another. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param switch_input: Switch protection input. Is either a SwitchClusterProtectionInput type or + a IO[bytes] type. Required. + :type switch_input: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionInput or IO[bytes] + :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of + cls(response) + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ProtectionContainer] = 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._switch_cluster_protection_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + switch_input=switch_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/remove" - } + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.ProtectionContainer].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _switch_protection_initial( self, fabric_name: str, protection_container_name: str, - switch_input: Union[_models.SwitchProtectionInput, IO], + switch_input: Union[_models.SwitchProtectionInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainer]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -825,7 +971,7 @@ async def _switch_protection_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainer]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -835,46 +981,51 @@ async def _switch_protection_initial( else: _json = self._serialize.body(switch_input, "SwitchProtectionInput") - request = build_switch_protection_request( + _request = build_switch_protection_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._switch_protection_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) - if cls: - return cls(pipeline_response, deserialized, {}) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) - return deserialized + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore - _switch_protection_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/switchprotection" - } + return deserialized # type: ignore @overload async def begin_switch_protection( @@ -900,14 +1051,6 @@ async def begin_switch_protection( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -920,7 +1063,7 @@ async def begin_switch_protection( self, fabric_name: str, protection_container_name: str, - switch_input: IO, + switch_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -935,18 +1078,10 @@ async def begin_switch_protection( :param protection_container_name: Protection container name. Required. :type protection_container_name: str :param switch_input: Switch protection input. Required. - :type switch_input: IO + :type switch_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -959,7 +1094,7 @@ async def begin_switch_protection( self, fabric_name: str, protection_container_name: str, - switch_input: Union[_models.SwitchProtectionInput, IO], + switch_input: Union[_models.SwitchProtectionInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.ProtectionContainer]: """Switches protection from one container to another or one replication provider to another. @@ -971,20 +1106,10 @@ async def begin_switch_protection( :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :param switch_input: Switch protection input. Is either a SwitchProtectionInput type or a IO - type. Required. - :type switch_input: ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProtectionInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param switch_input: Switch protection input. Is either a SwitchProtectionInput type or a + IO[bytes] type. Required. + :type switch_input: ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProtectionInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -1012,12 +1137,13 @@ async def begin_switch_protection( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1027,17 +1153,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.ProtectionContainer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_switch_protection.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/switchprotection" - } + return AsyncLROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainer"]: @@ -1045,7 +1169,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainer"]: Lists the protection containers in a vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainer or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] @@ -1057,7 +1180,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainer"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1068,17 +1191,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.ProtectionContainer"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1090,13 +1211,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerCollection", pipeline_response) @@ -1106,11 +1226,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1121,7 +1241,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionContainers" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_intents_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_intents_operations.py index 72c0e19b4ab6..e6f09eefeaa0 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_intents_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_protection_intents_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -20,20 +22,20 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_protection_intents_operations import ( build_create_request, build_get_request, build_list_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -53,10 +55,12 @@ class ReplicationProtectionIntentsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list( @@ -70,7 +74,6 @@ def list( :type skip_token: str :param take_token: The page size. Default value is None. :type take_token: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationProtectionIntent or the result of cls(response) :rtype: @@ -83,7 +86,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectionIntentCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -94,19 +97,17 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, take_token=take_token, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -118,13 +119,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("ReplicationProtectionIntentCollection", pipeline_response) @@ -134,11 +134,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -150,10 +150,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents" - } - @distributed_trace_async async def get(self, intent_object_name: str, **kwargs: Any) -> _models.ReplicationProtectionIntent: """Gets the details of a Replication protection intent item. @@ -162,12 +158,11 @@ async def get(self, intent_object_name: str, **kwargs: Any) -> _models.Replicati :param intent_object_name: Replication protection intent name. Required. :type intent_object_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -181,22 +176,20 @@ async def get(self, intent_object_name: str, **kwargs: Any) -> _models.Replicati api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectionIntent] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( intent_object_name=intent_object_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -205,16 +198,12 @@ async def get(self, intent_object_name: str, **kwargs: Any) -> _models.Replicati map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response) + deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}" - } + return deserialized # type: ignore @overload async def create( @@ -236,7 +225,6 @@ async def create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: @@ -244,7 +232,7 @@ async def create( @overload async def create( - self, intent_object_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, intent_object_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> _models.ReplicationProtectionIntent: """Create protection intent Resource. @@ -253,11 +241,10 @@ async def create( :param intent_object_name: A name for the replication protection item. Required. :type intent_object_name: str :param input: Create Protection Intent Input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: @@ -265,7 +252,7 @@ async def create( @distributed_trace_async async def create( - self, intent_object_name: str, input: Union[_models.CreateProtectionIntentInput, IO], **kwargs: Any + self, intent_object_name: str, input: Union[_models.CreateProtectionIntentInput, IO[bytes]], **kwargs: Any ) -> _models.ReplicationProtectionIntent: """Create protection intent Resource. @@ -274,17 +261,14 @@ async def create( :param intent_object_name: A name for the replication protection item. Required. :type intent_object_name: str :param input: Create Protection Intent Input. Is either a CreateProtectionIntentInput type or a - IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionIntentInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionIntentInput or + IO[bytes] :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -307,25 +291,23 @@ async def create( else: _json = self._serialize.body(input, "CreateProtectionIntentInput") - request = build_create_request( + _request = build_create_request( intent_object_name=intent_object_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.create.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -334,13 +316,9 @@ async def create( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response) + deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_plans_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_plans_operations.py index c8071b255011..bf4f6b2b21e1 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_plans_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_plans_operations.py @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_recovery_plans_operations import ( build_create_request, build_delete_request, @@ -45,6 +48,7 @@ build_unplanned_failover_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -64,10 +68,12 @@ class ReplicationRecoveryPlansOperations: # pylint: disable=too-many-public-met def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryPlan"]: @@ -75,7 +81,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryPlan"]: Lists the recovery plans in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryPlan or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlan] @@ -87,7 +92,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryPlan"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPlanCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -98,17 +103,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryPlan"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -120,13 +123,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryPlanCollection", pipeline_response) @@ -136,11 +138,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -152,10 +154,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans" - } - @distributed_trace_async async def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryPlan: """Gets the requested recovery plan. @@ -164,12 +162,11 @@ async def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryP :param recovery_plan_name: Name of the recovery plan. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: RecoveryPlan or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlan :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -183,22 +180,20 @@ async def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryP api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPlan] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -207,21 +202,17 @@ async def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryP map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore async def _create_initial( - self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -234,7 +225,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -244,45 +235,42 @@ async def _create_initial( else: _json = self._serialize.body(input, "CreateRecoveryPlanInput") - request = build_create_request( + _request = build_create_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -304,14 +292,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -321,7 +301,7 @@ async def begin_create( @overload async def begin_create( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Creates a recovery plan with the given details. @@ -330,18 +310,10 @@ async def begin_create( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery Plan creation input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -351,7 +323,7 @@ async def begin_create( @distributed_trace_async async def begin_create( - self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Creates a recovery plan with the given details. @@ -359,20 +331,10 @@ async def begin_create( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :param input: Recovery Plan creation input. Is either a CreateRecoveryPlanInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateRecoveryPlanInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Recovery Plan creation input. Is either a CreateRecoveryPlanInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateRecoveryPlanInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -399,12 +361,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -414,22 +377,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, recovery_plan_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _delete_initial(self, recovery_plan_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -441,38 +400,41 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -482,14 +444,6 @@ async def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> AsyncLRO :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -503,7 +457,7 @@ async def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> AsyncLRO 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( # type: ignore + raw_result = await self._delete_initial( recovery_plan_name=recovery_plan_name, api_version=api_version, cls=lambda x, y, z: x, @@ -511,11 +465,12 @@ async def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> AsyncLRO 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -524,22 +479,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( - self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -552,7 +503,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -562,45 +513,42 @@ async def _update_initial( else: _json = self._serialize.body(input, "UpdateRecoveryPlanInput") - request = build_update_request( + _request = build_update_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -622,14 +570,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -639,7 +579,7 @@ async def begin_update( @overload async def begin_update( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Updates the given recovery plan. @@ -648,18 +588,10 @@ async def begin_update( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Update recovery plan input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -669,7 +601,7 @@ async def begin_update( @distributed_trace_async async def begin_update( - self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Updates the given recovery plan. @@ -677,20 +609,10 @@ async def begin_update( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :param input: Update recovery plan input. Is either a UpdateRecoveryPlanInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateRecoveryPlanInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update recovery plan input. Is either a UpdateRecoveryPlanInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateRecoveryPlanInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -717,12 +639,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -732,20 +655,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _failover_cancel_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional[_models.RecoveryPlan]: - error_map = { + async def _failover_cancel_initial(self, recovery_plan_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -757,44 +678,41 @@ async def _failover_cancel_initial(self, recovery_plan_name: str, **kwargs: Any) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_cancel_request( + _request = build_failover_cancel_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_cancel_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _failover_cancel_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCancel" - } + return deserialized # type: ignore @distributed_trace_async async def begin_failover_cancel( @@ -806,14 +724,6 @@ async def begin_failover_cancel( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -837,12 +747,13 @@ async def begin_failover_cancel( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -852,20 +763,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_cancel.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCancel" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _failover_commit_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional[_models.RecoveryPlan]: - error_map = { + async def _failover_commit_initial(self, recovery_plan_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -877,44 +786,41 @@ async def _failover_commit_initial(self, recovery_plan_name: str, **kwargs: Any) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_commit_request( + _request = build_failover_commit_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_commit_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _failover_commit_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCommit" - } + return deserialized # type: ignore @distributed_trace_async async def begin_failover_commit( @@ -926,14 +832,6 @@ async def begin_failover_commit( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -957,12 +855,13 @@ async def begin_failover_commit( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -972,22 +871,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_commit.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCommit" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _planned_failover_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1000,7 +897,7 @@ async def _planned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1010,45 +907,42 @@ async def _planned_failover_initial( else: _json = self._serialize.body(input, "RecoveryPlanPlannedFailoverInput") - request = build_planned_failover_request( + _request = build_planned_failover_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._planned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _planned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/plannedFailover" - } + return deserialized # type: ignore @overload async def begin_planned_failover( @@ -1070,14 +964,6 @@ async def begin_planned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1087,7 +973,7 @@ async def begin_planned_failover( @overload async def begin_planned_failover( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute planned failover of the recovery plan. @@ -1096,18 +982,10 @@ async def begin_planned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Failover input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1117,7 +995,7 @@ async def begin_planned_failover( @distributed_trace_async async def begin_planned_failover( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute planned failover of the recovery plan. @@ -1125,21 +1003,10 @@ async def begin_planned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :param input: Failover input. Is either a RecoveryPlanPlannedFailoverInput type or a IO type. - Required. + :param input: Failover input. Is either a RecoveryPlanPlannedFailoverInput type or a IO[bytes] + type. Required. :type input: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanPlannedFailoverInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1166,12 +1033,13 @@ async def begin_planned_failover( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1181,20 +1049,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_planned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/plannedFailover" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _reprotect_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional[_models.RecoveryPlan]: - error_map = { + async def _reprotect_initial(self, recovery_plan_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1206,61 +1072,51 @@ async def _reprotect_initial(self, recovery_plan_name: str, **kwargs: Any) -> Op _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_reprotect_request( + _request = build_reprotect_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._reprotect_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _reprotect_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/reProtect" - } + return deserialized # type: ignore @distributed_trace_async async def begin_reprotect(self, recovery_plan_name: str, **kwargs: Any) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute reprotect of the recovery plan. - The operation to reprotect(reverse replicate) a recovery plan. + The operation to reprotect(reverse replicate) a recovery plan. This api is for deprecated + scenarios and no longer works. :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1284,12 +1140,13 @@ async def begin_reprotect(self, recovery_plan_name: str, **kwargs: Any) -> Async params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1299,22 +1156,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_reprotect.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/reProtect" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _test_failover_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1327,7 +1182,7 @@ async def _test_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1337,45 +1192,42 @@ async def _test_failover_initial( else: _json = self._serialize.body(input, "RecoveryPlanTestFailoverInput") - request = build_test_failover_request( + _request = build_test_failover_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _test_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailover" - } + return deserialized # type: ignore @overload async def begin_test_failover( @@ -1397,14 +1249,6 @@ async def begin_test_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1414,7 +1258,7 @@ async def begin_test_failover( @overload async def begin_test_failover( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute test failover of the recovery plan. @@ -1423,18 +1267,10 @@ async def begin_test_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1444,7 +1280,7 @@ async def begin_test_failover( @distributed_trace_async async def begin_test_failover( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute test failover of the recovery plan. @@ -1453,20 +1289,9 @@ async def begin_test_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover input. Is either a RecoveryPlanTestFailoverInput type - or a IO type. Required. + or a IO[bytes] type. Required. :type input: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanTestFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1493,12 +1318,13 @@ async def begin_test_failover( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1508,22 +1334,23 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailover" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _test_failover_cleanup_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO[bytes]], + **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1536,7 +1363,7 @@ async def _test_failover_cleanup_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1546,45 +1373,42 @@ async def _test_failover_cleanup_initial( else: _json = self._serialize.body(input, "RecoveryPlanTestFailoverCleanupInput") - request = build_test_failover_cleanup_request( + _request = build_test_failover_cleanup_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_cleanup_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_failover_cleanup_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailoverCleanup" - } + return deserialized # type: ignore @overload async def begin_test_failover_cleanup( @@ -1607,14 +1431,6 @@ async def begin_test_failover_cleanup( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1624,7 +1440,7 @@ async def begin_test_failover_cleanup( @overload async def begin_test_failover_cleanup( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute test failover cleanup of the recovery plan. @@ -1633,18 +1449,10 @@ async def begin_test_failover_cleanup( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover cleanup input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1654,7 +1462,10 @@ async def begin_test_failover_cleanup( @distributed_trace_async async def begin_test_failover_cleanup( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO], **kwargs: Any + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO[bytes]], + **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute test failover cleanup of the recovery plan. @@ -1663,20 +1474,10 @@ async def begin_test_failover_cleanup( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover cleanup input. Is either a - RecoveryPlanTestFailoverCleanupInput type or a IO type. Required. + RecoveryPlanTestFailoverCleanupInput type or a IO[bytes] type. Required. :type input: - ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanTestFailoverCleanupInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanTestFailoverCleanupInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1703,12 +1504,13 @@ async def begin_test_failover_cleanup( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1718,22 +1520,23 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover_cleanup.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailoverCleanup" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) async def _unplanned_failover_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO[bytes]], + **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1746,7 +1549,7 @@ async def _unplanned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1756,45 +1559,42 @@ async def _unplanned_failover_initial( else: _json = self._serialize.body(input, "RecoveryPlanUnplannedFailoverInput") - request = build_unplanned_failover_request( + _request = build_unplanned_failover_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._unplanned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _unplanned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/unplannedFailover" - } + return deserialized # type: ignore @overload async def begin_unplanned_failover( @@ -1816,14 +1616,6 @@ async def begin_unplanned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1833,7 +1625,7 @@ async def begin_unplanned_failover( @overload async def begin_unplanned_failover( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute unplanned failover of the recovery plan. @@ -1842,18 +1634,10 @@ async def begin_unplanned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan unplanned failover input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1863,7 +1647,10 @@ async def begin_unplanned_failover( @distributed_trace_async async def begin_unplanned_failover( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO], **kwargs: Any + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO[bytes]], + **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryPlan]: """Execute unplanned failover of the recovery plan. @@ -1872,20 +1659,9 @@ async def begin_unplanned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan unplanned failover input. Is either a - RecoveryPlanUnplannedFailoverInput type or a IO type. Required. + RecoveryPlanUnplannedFailoverInput type or a IO[bytes] type. Required. :type input: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanUnplannedFailoverInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1912,12 +1688,13 @@ async def begin_unplanned_failover( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1927,14 +1704,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_unplanned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/unplannedFailover" - } + return AsyncLROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_services_providers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_services_providers_operations.py index 29cdd60e26ab..77d42b2bde4b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_services_providers_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_recovery_services_providers_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_recovery_services_providers_operations import ( build_create_request, build_delete_request, @@ -40,12 +43,13 @@ build_purge_request, build_refresh_provider_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class ReplicationRecoveryServicesProvidersOperations: +class ReplicationRecoveryServicesProvidersOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -59,10 +63,12 @@ class ReplicationRecoveryServicesProvidersOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics( @@ -74,7 +80,6 @@ def list_by_replication_fabrics( :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -87,7 +92,7 @@ def list_by_replication_fabrics( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryServicesProviderCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -98,18 +103,16 @@ def list_by_replication_fabrics( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -121,13 +124,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryServicesProviderCollection", pipeline_response) @@ -137,11 +139,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -153,10 +155,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders" - } - @distributed_trace_async async def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _models.RecoveryServicesProvider: """Gets the details of a recovery services provider. @@ -167,12 +165,11 @@ async def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _mod :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: RecoveryServicesProvider or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryServicesProvider :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -186,23 +183,21 @@ async def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _mod api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryServicesProvider] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -211,25 +206,21 @@ async def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _mod map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, provider_name: str, - add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO], + add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.RecoveryServicesProvider]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -242,7 +233,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryServicesProvider]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -252,46 +243,43 @@ async def _create_initial( else: _json = self._serialize.body(add_provider_input, "AddRecoveryServicesProviderInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -317,14 +305,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -337,7 +317,7 @@ async def begin_create( self, fabric_name: str, provider_name: str, - add_provider_input: IO, + add_provider_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -351,18 +331,10 @@ async def begin_create( :param provider_name: Recovery services provider name. Required. :type provider_name: str :param add_provider_input: Add provider input. Required. - :type add_provider_input: IO + :type add_provider_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -375,7 +347,7 @@ async def begin_create( self, fabric_name: str, provider_name: str, - add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO], + add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.RecoveryServicesProvider]: """Adds a recovery services provider. @@ -387,20 +359,9 @@ async def begin_create( :param provider_name: Recovery services provider name. Required. :type provider_name: str :param add_provider_input: Add provider input. Is either a AddRecoveryServicesProviderInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type add_provider_input: - ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -428,12 +389,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -443,22 +405,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryServicesProvider].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return AsyncLROPoller[_models.RecoveryServicesProvider]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _purge_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, provider_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _purge_initial(self, fabric_name: str, provider_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -470,39 +428,42 @@ async def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -514,14 +475,6 @@ async def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -535,7 +488,7 @@ async def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) 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._purge_initial( # type: ignore + raw_result = await self._purge_initial( fabric_name=fabric_name, provider_name=provider_name, api_version=api_version, @@ -544,11 +497,12 @@ async def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -557,22 +511,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _refresh_provider_initial( self, fabric_name: str, provider_name: str, **kwargs: Any - ) -> Optional[_models.RecoveryServicesProvider]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -584,45 +534,42 @@ async def _refresh_provider_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryServicesProvider]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_refresh_provider_request( + _request = build_refresh_provider_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._refresh_provider_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _refresh_provider_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/refreshProvider" - } + return deserialized # type: ignore @distributed_trace_async async def begin_refresh_provider( @@ -636,14 +583,6 @@ async def begin_refresh_provider( :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -668,12 +607,13 @@ async def begin_refresh_provider( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -683,22 +623,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.RecoveryServicesProvider].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_refresh_provider.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/refreshProvider" - } + return AsyncLROPoller[_models.RecoveryServicesProvider]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, provider_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _delete_initial(self, fabric_name: str, provider_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -710,39 +646,42 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/remove" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -757,14 +696,6 @@ async def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -778,7 +709,7 @@ async def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, provider_name=provider_name, api_version=api_version, @@ -787,11 +718,12 @@ async def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -800,17 +732,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/remove" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryServicesProvider"]: @@ -818,7 +746,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryServicesProvider Lists the registered recovery services providers in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -831,7 +758,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryServicesProvider api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryServicesProviderCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -842,17 +769,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.RecoveryServicesProvider def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -864,13 +789,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryServicesProviderCollection", pipeline_response) @@ -880,11 +804,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -895,7 +819,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryServicesProviders" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classification_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classification_mappings_operations.py index 47f1d3029f2b..4df12c094ede 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classification_mappings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classification_mappings_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +19,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +33,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_storage_classification_mappings_operations import ( build_create_request, build_delete_request, @@ -38,12 +41,13 @@ build_list_by_replication_storage_classifications_request, build_list_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class ReplicationStorageClassificationMappingsOperations: +class ReplicationStorageClassificationMappingsOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -57,13 +61,15 @@ class ReplicationStorageClassificationMappingsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_storage_classifications( + def list_by_replication_storage_classifications( # pylint: disable=name-too-long self, fabric_name: str, storage_classification_name: str, **kwargs: Any ) -> AsyncIterable["_models.StorageClassificationMapping"]: """Gets the list of storage classification mappings objects under a storage. @@ -74,7 +80,6 @@ def list_by_replication_storage_classifications( :type fabric_name: str :param storage_classification_name: Storage classification name. Required. :type storage_classification_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassificationMapping or the result of cls(response) :rtype: @@ -87,7 +92,7 @@ def list_by_replication_storage_classifications( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -98,19 +103,17 @@ def list_by_replication_storage_classifications( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_storage_classifications_request( + _request = build_list_by_replication_storage_classifications_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_storage_classifications.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -122,13 +125,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationMappingCollection", pipeline_response) @@ -138,11 +140,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -154,10 +156,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_storage_classifications.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings" - } - @distributed_trace_async async def get( self, @@ -176,12 +174,11 @@ async def get( :type storage_classification_name: str :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: StorageClassificationMapping or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassificationMapping :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -195,24 +192,22 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationMapping] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -221,26 +216,22 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("StorageClassificationMapping", pipeline_response) + deserialized = self._deserialize("StorageClassificationMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - pairing_input: Union[_models.StorageClassificationMappingInput, IO], + pairing_input: Union[_models.StorageClassificationMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.StorageClassificationMapping]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -253,7 +244,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.StorageClassificationMapping]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -263,47 +254,44 @@ async def _create_initial( else: _json = self._serialize.body(pairing_input, "StorageClassificationMappingInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("StorageClassificationMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -332,14 +320,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either StorageClassificationMapping or the result of cls(response) :rtype: @@ -353,7 +333,7 @@ async def begin_create( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - pairing_input: IO, + pairing_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -369,18 +349,10 @@ async def begin_create( :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str :param pairing_input: Pairing input. Required. - :type pairing_input: IO + :type pairing_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either StorageClassificationMapping or the result of cls(response) :rtype: @@ -394,7 +366,7 @@ async def begin_create( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - pairing_input: Union[_models.StorageClassificationMappingInput, IO], + pairing_input: Union[_models.StorageClassificationMappingInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.StorageClassificationMapping]: """Create storage classification mapping. @@ -407,21 +379,10 @@ async def begin_create( :type storage_classification_name: str :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str - :param pairing_input: Pairing input. Is either a StorageClassificationMappingInput type or a IO - type. Required. + :param pairing_input: Pairing input. Is either a StorageClassificationMappingInput type or a + IO[bytes] type. Required. :type pairing_input: - ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassificationMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassificationMappingInput or IO[bytes] :return: An instance of AsyncLROPoller that returns either StorageClassificationMapping or the result of cls(response) :rtype: @@ -450,12 +411,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("StorageClassificationMapping", pipeline_response) + deserialized = self._deserialize("StorageClassificationMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -465,26 +427,24 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.StorageClassificationMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return AsyncLROPoller[_models.StorageClassificationMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements + async def _delete_initial( self, fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -496,40 +456,43 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete( @@ -549,14 +512,6 @@ async def begin_delete( :type storage_classification_name: str :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -570,7 +525,7 @@ async def begin_delete( 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, @@ -580,11 +535,12 @@ async def begin_delete( 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -593,17 +549,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassificationMapping"]: @@ -611,7 +563,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassificationMap Lists the storage classification mappings in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassificationMapping or the result of cls(response) :rtype: @@ -624,7 +575,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassificationMap api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -635,17 +586,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassificationMap def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -657,13 +606,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationMappingCollection", pipeline_response) @@ -673,11 +621,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -688,7 +636,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationStorageClassificationMappings" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classifications_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classifications_operations.py index 58f8b302fcbb..4aba06fa6de5 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classifications_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_storage_classifications_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,26 +20,26 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_storage_classifications_operations import ( build_get_request, build_list_by_replication_fabrics_request, build_list_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class ReplicationStorageClassificationsOperations: +class ReplicationStorageClassificationsOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -52,10 +53,12 @@ class ReplicationStorageClassificationsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics( @@ -67,7 +70,6 @@ def list_by_replication_fabrics( :param fabric_name: Site name of interest. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassification or the result of cls(response) :rtype: @@ -80,7 +82,7 @@ def list_by_replication_fabrics( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -91,18 +93,16 @@ def list_by_replication_fabrics( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -114,13 +114,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationCollection", pipeline_response) @@ -130,11 +129,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -146,10 +145,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications" - } - @distributed_trace_async async def get( self, fabric_name: str, storage_classification_name: str, **kwargs: Any @@ -162,12 +157,11 @@ async def get( :type fabric_name: str :param storage_classification_name: Storage classification name. Required. :type storage_classification_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: StorageClassification or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassification :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -181,23 +175,21 @@ async def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassification] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -206,16 +198,12 @@ async def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("StorageClassification", pipeline_response) + deserialized = self._deserialize("StorageClassification", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}" - } + return deserialized # type: ignore @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassification"]: @@ -223,7 +211,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassification"]: Lists the storage classifications in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassification or the result of cls(response) :rtype: @@ -236,7 +223,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassification"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -247,17 +234,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.StorageClassification"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -269,13 +254,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationCollection", pipeline_response) @@ -285,11 +269,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -300,7 +284,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationStorageClassifications" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_health_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_health_operations.py index 07784c46208b..52bcf45a98ab 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_health_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_health_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,28 +5,32 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, Optional, TypeVar, Union, cast +from collections.abc import MutableMapping +from typing import Any, AsyncIterator, Callable, Dict, Optional, TypeVar, Union, cast +from azure.core import AsyncPipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_vault_health_operations import build_get_request, build_refresh_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -47,10 +50,12 @@ class ReplicationVaultHealthOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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, **kwargs: Any) -> _models.VaultHealthDetails: @@ -58,12 +63,11 @@ async def get(self, **kwargs: Any) -> _models.VaultHealthDetails: Gets the health details of the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: VaultHealthDetails or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.VaultHealthDetails :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -77,21 +81,19 @@ async def get(self, **kwargs: Any) -> _models.VaultHealthDetails: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VaultHealthDetails] = kwargs.pop("cls", None) - request = build_get_request( - resource_name=self._config.resource_name, + _request = build_get_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -100,19 +102,15 @@ async def get(self, **kwargs: Any) -> _models.VaultHealthDetails: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VaultHealthDetails", pipeline_response) + deserialized = self._deserialize("VaultHealthDetails", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized + return deserialized # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth" - } - - async def _refresh_initial(self, **kwargs: Any) -> Optional[_models.VaultHealthDetails]: - error_map = { + async def _refresh_initial(self, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -124,43 +122,40 @@ async def _refresh_initial(self, **kwargs: Any) -> Optional[_models.VaultHealthD _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.VaultHealthDetails]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_refresh_request( - resource_name=self._config.resource_name, + _request = build_refresh_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._refresh_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VaultHealthDetails", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _refresh_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth/default/refresh" - } + return deserialized # type: ignore @distributed_trace_async async def begin_refresh(self, **kwargs: Any) -> AsyncLROPoller[_models.VaultHealthDetails]: @@ -168,14 +163,6 @@ async def begin_refresh(self, **kwargs: Any) -> AsyncLROPoller[_models.VaultHeal Refreshes health summary of the vault. - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VaultHealthDetails or the result of cls(response) :rtype: @@ -194,12 +181,13 @@ async def begin_refresh(self, **kwargs: Any) -> AsyncLROPoller[_models.VaultHeal raw_result = await self._refresh_initial( api_version=api_version, 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): - deserialized = self._deserialize("VaultHealthDetails", pipeline_response) + deserialized = self._deserialize("VaultHealthDetails", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -209,14 +197,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VaultHealthDetails].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_refresh.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth/default/refresh" - } + return AsyncLROPoller[_models.VaultHealthDetails]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_setting_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_setting_operations.py index 1cec7d94b837..36bed49c7729 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_setting_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replication_vault_setting_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +5,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +18,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,12 +32,13 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replication_vault_setting_operations import ( build_create_request, build_get_request, build_list_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -55,10 +58,12 @@ class ReplicationVaultSettingOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> AsyncIterable["_models.VaultSetting"]: @@ -66,7 +71,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.VaultSetting"]: Gets the list of vault setting. This includes the Migration Hub connection settings. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VaultSetting or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.VaultSetting] @@ -78,7 +82,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.VaultSetting"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VaultSettingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -89,17 +93,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.VaultSetting"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -111,13 +113,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("VaultSettingCollection", pipeline_response) @@ -127,11 +128,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -143,10 +144,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings" - } - @distributed_trace_async async def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSetting: """Gets the vault setting. @@ -155,12 +152,11 @@ async def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSett :param vault_setting_name: Vault setting name. Required. :type vault_setting_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VaultSetting or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.VaultSetting :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -174,22 +170,20 @@ async def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSett api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VaultSetting] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( vault_setting_name=vault_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -198,21 +192,17 @@ async def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSett map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VaultSetting", pipeline_response) + deserialized = self._deserialize("VaultSetting", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}" - } + return deserialized # type: ignore async def _create_initial( - self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO], **kwargs: Any - ) -> _models.VaultSetting: - error_map = { + self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO[bytes]], **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -225,7 +215,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VaultSetting] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -235,43 +225,42 @@ async def _create_initial( else: _json = self._serialize.body(input, "VaultSettingCreationInput") - request = build_create_request( + _request = build_create_request( vault_setting_name=vault_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response if response.status_code not in [200]: + 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VaultSetting", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -294,14 +283,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VaultSetting or the result of cls(response) :rtype: @@ -311,7 +292,7 @@ async def begin_create( @overload async def begin_create( - self, vault_setting_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, vault_setting_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[_models.VaultSetting]: """Updates vault setting. A vault setting object is a singleton per vault and it is always present by default. @@ -321,18 +302,10 @@ async def begin_create( :param vault_setting_name: Vault setting name. Required. :type vault_setting_name: str :param input: Vault setting creation input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VaultSetting or the result of cls(response) :rtype: @@ -342,7 +315,7 @@ async def begin_create( @distributed_trace_async async def begin_create( - self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO], **kwargs: Any + self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.VaultSetting]: """Updates vault setting. A vault setting object is a singleton per vault and it is always present by default. @@ -351,20 +324,10 @@ async def begin_create( :param vault_setting_name: Vault setting name. Required. :type vault_setting_name: str - :param input: Vault setting creation input. Is either a VaultSettingCreationInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.VaultSettingCreationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Vault setting creation input. Is either a VaultSettingCreationInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.VaultSettingCreationInput or + IO[bytes] :return: An instance of AsyncLROPoller that returns either VaultSetting or the result of cls(response) :rtype: @@ -391,12 +354,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VaultSetting", pipeline_response) + deserialized = self._deserialize("VaultSetting", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -406,14 +370,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VaultSetting].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}" - } + return AsyncLROPoller[_models.VaultSetting]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replicationv_centers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replicationv_centers_operations.py index 588effefd2d6..13e1c0de4d52 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replicationv_centers_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_replicationv_centers_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +5,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload +from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -17,12 +18,13 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict @@ -30,7 +32,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._replicationv_centers_operations import ( build_create_request, build_delete_request, @@ -39,6 +41,7 @@ build_list_request, build_update_request, ) +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -58,10 +61,12 @@ class ReplicationvCentersOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncIterable["_models.VCenter"]: @@ -71,7 +76,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VCenter or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] @@ -83,7 +87,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VCenterCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -94,18 +98,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> AsyncI def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -117,13 +119,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("VCenterCollection", pipeline_response) @@ -133,11 +134,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -149,10 +150,6 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters" - } - @distributed_trace_async async def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _models.VCenter: """Gets the details of a vCenter. @@ -163,12 +160,11 @@ async def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _mode :type fabric_name: str :param vcenter_name: vcenter name. Required. :type vcenter_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VCenter or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.VCenter :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -182,23 +178,21 @@ async def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _mode api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VCenter] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -207,25 +201,21 @@ async def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _mode map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = self._deserialize("VCenter", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore async def _create_initial( self, fabric_name: str, vcenter_name: str, - add_v_center_request: Union[_models.AddVCenterRequest, IO], + add_v_center_request: Union[_models.AddVCenterRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.VCenter]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -238,7 +228,7 @@ async def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VCenter]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -248,46 +238,43 @@ async def _create_initial( else: _json = self._serialize.body(add_v_center_request, "AddVCenterRequest") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore @overload async def begin_create( @@ -312,14 +299,6 @@ async def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VCenter or the result of cls(response) :rtype: @@ -332,7 +311,7 @@ async def begin_create( self, fabric_name: str, vcenter_name: str, - add_v_center_request: IO, + add_v_center_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -346,18 +325,10 @@ async def begin_create( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param add_v_center_request: The input to the add vCenter operation. Required. - :type add_v_center_request: IO + :type add_v_center_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VCenter or the result of cls(response) :rtype: @@ -370,7 +341,7 @@ async def begin_create( self, fabric_name: str, vcenter_name: str, - add_v_center_request: Union[_models.AddVCenterRequest, IO], + add_v_center_request: Union[_models.AddVCenterRequest, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.VCenter]: """Add vCenter. @@ -382,20 +353,9 @@ async def begin_create( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param add_v_center_request: The input to the add vCenter operation. Is either a - AddVCenterRequest type or a IO type. Required. + AddVCenterRequest type or a IO[bytes] type. Required. :type add_v_center_request: ~azure.mgmt.recoveryservicessiterecovery.models.AddVCenterRequest - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of AsyncLROPoller that returns either VCenter or the result of cls(response) :rtype: @@ -423,12 +383,13 @@ async def begin_create( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = self._deserialize("VCenter", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -438,22 +399,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VCenter].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return AsyncLROPoller[_models.VCenter]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, vcenter_name: str, **kwargs: Any - ) -> None: - error_map = { + async def _delete_initial(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -465,39 +422,42 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore @distributed_trace_async async def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> AsyncLROPoller[None]: @@ -509,14 +469,6 @@ async def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) :type fabric_name: str :param vcenter_name: vcenter name. Required. :type vcenter_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -530,7 +482,7 @@ async def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) 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( # type: ignore + raw_result = await self._delete_initial( fabric_name=fabric_name, vcenter_name=vcenter_name, api_version=api_version, @@ -539,11 +491,12 @@ async def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) @@ -552,26 +505,22 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore async def _update_initial( self, fabric_name: str, vcenter_name: str, - update_v_center_request: Union[_models.UpdateVCenterRequest, IO], + update_v_center_request: Union[_models.UpdateVCenterRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.VCenter]: - error_map = { + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -584,7 +533,7 @@ async def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VCenter]] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -594,46 +543,43 @@ async def _update_initial( else: _json = self._serialize.body(update_v_center_request, "UpdateVCenterRequest") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _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 + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore @overload async def begin_update( @@ -659,14 +605,6 @@ async def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VCenter or the result of cls(response) :rtype: @@ -679,7 +617,7 @@ async def begin_update( self, fabric_name: str, vcenter_name: str, - update_v_center_request: IO, + update_v_center_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -693,18 +631,10 @@ async def begin_update( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param update_v_center_request: The input to the update vCenter operation. Required. - :type update_v_center_request: IO + :type update_v_center_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of AsyncLROPoller that returns either VCenter or the result of cls(response) :rtype: @@ -717,7 +647,7 @@ async def begin_update( self, fabric_name: str, vcenter_name: str, - update_v_center_request: Union[_models.UpdateVCenterRequest, IO], + update_v_center_request: Union[_models.UpdateVCenterRequest, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[_models.VCenter]: """Update vCenter operation. @@ -729,20 +659,9 @@ async def begin_update( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param update_v_center_request: The input to the update vCenter operation. Is either a - UpdateVCenterRequest type or a IO type. Required. + UpdateVCenterRequest type or a IO[bytes] type. Required. :type update_v_center_request: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateVCenterRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for - this operation to not poll, or pass in your own initialized polling object for a personal - polling strategy. - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateVCenterRequest or IO[bytes] :return: An instance of AsyncLROPoller that returns either VCenter or the result of cls(response) :rtype: @@ -770,12 +689,13 @@ async def begin_update( params=_params, **kwargs ) + await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = self._deserialize("VCenter", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -785,17 +705,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller.from_continuation_token( + return AsyncLROPoller[_models.VCenter].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return AsyncLROPoller[_models.VCenter]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list(self, **kwargs: Any) -> AsyncIterable["_models.VCenter"]: @@ -803,7 +721,6 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.VCenter"]: Lists the vCenter servers registered in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VCenter or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] @@ -815,7 +732,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.VCenter"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VCenterCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -826,17 +743,15 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.VCenter"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -848,13 +763,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("VCenterCollection", pipeline_response) @@ -864,11 +778,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -879,7 +793,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationvCenters" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_supported_operating_systems_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_supported_operating_systems_operations.py index 4f37e134e22e..5a31a715ae3d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_supported_operating_systems_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_supported_operating_systems_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +5,10 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Optional, TypeVar +from azure.core import AsyncPipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -17,15 +18,15 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator_async import distributed_trace_async from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._supported_operating_systems_operations import build_get_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -45,10 +46,12 @@ class SupportedOperatingSystemsOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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, instance_type: Optional[str] = None, **kwargs: Any) -> _models.SupportedOperatingSystems: @@ -58,12 +61,11 @@ async def get(self, instance_type: Optional[str] = None, **kwargs: Any) -> _mode :param instance_type: The instance type. Default value is None. :type instance_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: SupportedOperatingSystems or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.SupportedOperatingSystems :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -77,22 +79,20 @@ async def get(self, instance_type: Optional[str] = None, **kwargs: Any) -> _mode api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.SupportedOperatingSystems] = kwargs.pop("cls", None) - request = build_get_request( - resource_name=self._config.resource_name, + _request = build_get_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, instance_type=instance_type, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -101,13 +101,9 @@ async def get(self, instance_type: Optional[str] = None, **kwargs: Any) -> _mode map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("SupportedOperatingSystems", pipeline_response) + deserialized = self._deserialize("SupportedOperatingSystems", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationSupportedOperatingSystems" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_target_compute_sizes_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_target_compute_sizes_operations.py index 3552bef86c07..16c5da223ce7 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_target_compute_sizes_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/aio/operations/_target_compute_sizes_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +5,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse +from azure.core import AsyncPipelineClient from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( ClientAuthenticationError, @@ -19,15 +20,15 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models -from ..._vendor import _convert_request +from ..._serialization import Deserializer, Serializer from ...operations._target_compute_sizes_operations import build_list_by_replication_protected_items_request +from .._configuration import SiteRecoveryManagementClientConfiguration T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -47,10 +48,12 @@ class TargetComputeSizesOperations: def __init__(self, *args, **kwargs) -> None: input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protected_items( @@ -66,7 +69,6 @@ def list_by_replication_protected_items( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TargetComputeSize or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.TargetComputeSize] @@ -78,7 +80,7 @@ def list_by_replication_protected_items( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.TargetComputeSizeCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -89,20 +91,18 @@ def list_by_replication_protected_items( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protected_items_request( + _request = build_list_by_replication_protected_items_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protected_items.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -114,13 +114,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request async def extract_data(pipeline_response): deserialized = self._deserialize("TargetComputeSizeCollection", pipeline_response) @@ -130,11 +129,11 @@ async def extract_data(pipeline_response): return deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -145,7 +144,3 @@ async def get_next(next_link=None): return pipeline_response return AsyncItemPaged(get_next, extract_data) - - list_by_replication_protected_items.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/targetComputeSizes" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/__init__.py index ccd11447f4a5..c53ac6712464 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/__init__.py @@ -1,3 +1,4 @@ +# pylint: disable=too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,589 +6,652 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position -from ._models_py3 import A2AAddDisksInput -from ._models_py3 import A2AApplyRecoveryPointInput -from ._models_py3 import A2AContainerCreationInput -from ._models_py3 import A2AContainerMappingInput -from ._models_py3 import A2ACreateProtectionIntentInput -from ._models_py3 import A2ACrossClusterMigrationApplyRecoveryPointInput -from ._models_py3 import A2ACrossClusterMigrationContainerCreationInput -from ._models_py3 import A2ACrossClusterMigrationEnableProtectionInput -from ._models_py3 import A2ACrossClusterMigrationPolicyCreationInput -from ._models_py3 import A2ACrossClusterMigrationReplicationDetails -from ._models_py3 import A2AEnableProtectionInput -from ._models_py3 import A2AEventDetails -from ._models_py3 import A2AExtendedLocationDetails -from ._models_py3 import A2AFabricSpecificLocationDetails -from ._models_py3 import A2APolicyCreationInput -from ._models_py3 import A2APolicyDetails -from ._models_py3 import A2AProtectedDiskDetails -from ._models_py3 import A2AProtectedManagedDiskDetails -from ._models_py3 import A2AProtectionContainerMappingDetails -from ._models_py3 import A2AProtectionIntentDiskInputDetails -from ._models_py3 import A2AProtectionIntentManagedDiskInputDetails -from ._models_py3 import A2ARecoveryPointDetails -from ._models_py3 import A2ARemoveDisksInput -from ._models_py3 import A2AReplicationDetails -from ._models_py3 import A2AReplicationIntentDetails -from ._models_py3 import A2AReprotectInput -from ._models_py3 import A2ASwitchProtectionInput -from ._models_py3 import A2ATestFailoverInput -from ._models_py3 import A2AUnplannedFailoverInput -from ._models_py3 import A2AUnprotectedDiskDetails -from ._models_py3 import A2AUpdateContainerMappingInput -from ._models_py3 import A2AUpdateReplicationProtectedItemInput -from ._models_py3 import A2AVmDiskInputDetails -from ._models_py3 import A2AVmManagedDiskInputDetails -from ._models_py3 import A2AVmManagedDiskUpdateDetails -from ._models_py3 import A2AZoneDetails -from ._models_py3 import ASRTask -from ._models_py3 import AddDisksInput -from ._models_py3 import AddDisksInputProperties -from ._models_py3 import AddDisksProviderSpecificInput -from ._models_py3 import AddRecoveryServicesProviderInput -from ._models_py3 import AddRecoveryServicesProviderInputProperties -from ._models_py3 import AddVCenterRequest -from ._models_py3 import AddVCenterRequestProperties -from ._models_py3 import AgentDetails -from ._models_py3 import AgentDiskDetails -from ._models_py3 import Alert -from ._models_py3 import AlertCollection -from ._models_py3 import AlertProperties -from ._models_py3 import ApplianceCollection -from ._models_py3 import ApplianceMonitoringDetails -from ._models_py3 import ApplianceQueryParameter -from ._models_py3 import ApplianceResourceDetails -from ._models_py3 import ApplianceSpecificDetails -from ._models_py3 import ApplyRecoveryPointInput -from ._models_py3 import ApplyRecoveryPointInputProperties -from ._models_py3 import ApplyRecoveryPointProviderSpecificInput -from ._models_py3 import AsrJobDetails -from ._models_py3 import AutomationRunbookTaskDetails -from ._models_py3 import AzureFabricCreationInput -from ._models_py3 import AzureFabricSpecificDetails -from ._models_py3 import AzureToAzureCreateNetworkMappingInput -from ._models_py3 import AzureToAzureNetworkMappingSettings -from ._models_py3 import AzureToAzureUpdateNetworkMappingInput -from ._models_py3 import AzureToAzureVmSyncedConfigDetails -from ._models_py3 import AzureVmDiskDetails -from ._models_py3 import ComputeSizeErrorDetails -from ._models_py3 import ConfigurationSettings -from ._models_py3 import ConfigureAlertRequest -from ._models_py3 import ConfigureAlertRequestProperties -from ._models_py3 import ConsistencyCheckTaskDetails -from ._models_py3 import CreateNetworkMappingInput -from ._models_py3 import CreateNetworkMappingInputProperties -from ._models_py3 import CreatePolicyInput -from ._models_py3 import CreatePolicyInputProperties -from ._models_py3 import CreateProtectionContainerInput -from ._models_py3 import CreateProtectionContainerInputProperties -from ._models_py3 import CreateProtectionContainerMappingInput -from ._models_py3 import CreateProtectionContainerMappingInputProperties -from ._models_py3 import CreateProtectionIntentInput -from ._models_py3 import CreateProtectionIntentProperties -from ._models_py3 import CreateProtectionIntentProviderSpecificDetails -from ._models_py3 import CreateRecoveryPlanInput -from ._models_py3 import CreateRecoveryPlanInputProperties -from ._models_py3 import CriticalJobHistoryDetails -from ._models_py3 import CurrentJobDetails -from ._models_py3 import CurrentScenarioDetails -from ._models_py3 import DataStore -from ._models_py3 import DataStoreUtilizationDetails -from ._models_py3 import DisableProtectionInput -from ._models_py3 import DisableProtectionInputProperties -from ._models_py3 import DisableProtectionProviderSpecificInput -from ._models_py3 import DiscoverProtectableItemRequest -from ._models_py3 import DiscoverProtectableItemRequestProperties -from ._models_py3 import DiskDetails -from ._models_py3 import DiskEncryptionInfo -from ._models_py3 import DiskEncryptionKeyInfo -from ._models_py3 import DiskVolumeDetails -from ._models_py3 import Display -from ._models_py3 import DraDetails -from ._models_py3 import EnableMigrationInput -from ._models_py3 import EnableMigrationInputProperties -from ._models_py3 import EnableMigrationProviderSpecificInput -from ._models_py3 import EnableProtectionInput -from ._models_py3 import EnableProtectionInputProperties -from ._models_py3 import EnableProtectionProviderSpecificInput -from ._models_py3 import EncryptionDetails -from ._models_py3 import ErrorAdditionalInfo -from ._models_py3 import ErrorDetail -from ._models_py3 import ErrorResponse -from ._models_py3 import Event -from ._models_py3 import EventCollection -from ._models_py3 import EventProperties -from ._models_py3 import EventProviderSpecificDetails -from ._models_py3 import EventQueryParameter -from ._models_py3 import EventSpecificDetails -from ._models_py3 import ExistingProtectionProfile -from ._models_py3 import ExistingRecoveryAvailabilitySet -from ._models_py3 import ExistingRecoveryProximityPlacementGroup -from ._models_py3 import ExistingRecoveryResourceGroup -from ._models_py3 import ExistingRecoveryVirtualNetwork -from ._models_py3 import ExistingStorageAccount -from ._models_py3 import ExportJobDetails -from ._models_py3 import ExtendedLocation -from ._models_py3 import Fabric -from ._models_py3 import FabricCollection -from ._models_py3 import FabricCreationInput -from ._models_py3 import FabricCreationInputProperties -from ._models_py3 import FabricProperties -from ._models_py3 import FabricQueryParameter -from ._models_py3 import FabricReplicationGroupTaskDetails -from ._models_py3 import FabricSpecificCreateNetworkMappingInput -from ._models_py3 import FabricSpecificCreationInput -from ._models_py3 import FabricSpecificDetails -from ._models_py3 import FabricSpecificUpdateNetworkMappingInput -from ._models_py3 import FailoverJobDetails -from ._models_py3 import FailoverProcessServerRequest -from ._models_py3 import FailoverProcessServerRequestProperties -from ._models_py3 import FailoverReplicationProtectedItemDetails -from ._models_py3 import GatewayOperationDetails -from ._models_py3 import GroupTaskDetails -from ._models_py3 import HealthError -from ._models_py3 import HealthErrorSummary -from ._models_py3 import HyperVHostDetails -from ._models_py3 import HyperVReplica2012EventDetails -from ._models_py3 import HyperVReplica2012R2EventDetails -from ._models_py3 import HyperVReplicaAzureApplyRecoveryPointInput -from ._models_py3 import HyperVReplicaAzureDiskInputDetails -from ._models_py3 import HyperVReplicaAzureEnableProtectionInput -from ._models_py3 import HyperVReplicaAzureEventDetails -from ._models_py3 import HyperVReplicaAzureFailbackProviderInput -from ._models_py3 import HyperVReplicaAzureManagedDiskDetails -from ._models_py3 import HyperVReplicaAzurePlannedFailoverProviderInput -from ._models_py3 import HyperVReplicaAzurePolicyDetails -from ._models_py3 import HyperVReplicaAzurePolicyInput -from ._models_py3 import HyperVReplicaAzureReplicationDetails -from ._models_py3 import HyperVReplicaAzureReprotectInput -from ._models_py3 import HyperVReplicaAzureTestFailoverInput -from ._models_py3 import HyperVReplicaAzureUnplannedFailoverInput -from ._models_py3 import HyperVReplicaAzureUpdateReplicationProtectedItemInput -from ._models_py3 import HyperVReplicaBaseEventDetails -from ._models_py3 import HyperVReplicaBasePolicyDetails -from ._models_py3 import HyperVReplicaBaseReplicationDetails -from ._models_py3 import HyperVReplicaBluePolicyDetails -from ._models_py3 import HyperVReplicaBluePolicyInput -from ._models_py3 import HyperVReplicaBlueReplicationDetails -from ._models_py3 import HyperVReplicaPolicyDetails -from ._models_py3 import HyperVReplicaPolicyInput -from ._models_py3 import HyperVReplicaReplicationDetails -from ._models_py3 import HyperVSiteDetails -from ._models_py3 import HyperVVirtualMachineDetails -from ._models_py3 import IPConfigDetails -from ._models_py3 import IPConfigInputDetails -from ._models_py3 import IdentityProviderDetails -from ._models_py3 import IdentityProviderInput -from ._models_py3 import InMageAgentDetails -from ._models_py3 import InMageAzureV2ApplyRecoveryPointInput -from ._models_py3 import InMageAzureV2DiskInputDetails -from ._models_py3 import InMageAzureV2EnableProtectionInput -from ._models_py3 import InMageAzureV2EventDetails -from ._models_py3 import InMageAzureV2ManagedDiskDetails -from ._models_py3 import InMageAzureV2PolicyDetails -from ._models_py3 import InMageAzureV2PolicyInput -from ._models_py3 import InMageAzureV2ProtectedDiskDetails -from ._models_py3 import InMageAzureV2RecoveryPointDetails -from ._models_py3 import InMageAzureV2ReplicationDetails -from ._models_py3 import InMageAzureV2ReprotectInput -from ._models_py3 import InMageAzureV2SwitchProviderBlockingErrorDetails -from ._models_py3 import InMageAzureV2SwitchProviderDetails -from ._models_py3 import InMageAzureV2SwitchProviderInput -from ._models_py3 import InMageAzureV2TestFailoverInput -from ._models_py3 import InMageAzureV2UnplannedFailoverInput -from ._models_py3 import InMageAzureV2UpdateReplicationProtectedItemInput -from ._models_py3 import InMageBasePolicyDetails -from ._models_py3 import InMageDisableProtectionProviderSpecificInput -from ._models_py3 import InMageDiskDetails -from ._models_py3 import InMageDiskExclusionInput -from ._models_py3 import InMageDiskSignatureExclusionOptions -from ._models_py3 import InMageEnableProtectionInput -from ._models_py3 import InMageFabricSwitchProviderBlockingErrorDetails -from ._models_py3 import InMagePolicyDetails -from ._models_py3 import InMagePolicyInput -from ._models_py3 import InMageProtectedDiskDetails -from ._models_py3 import InMageRcmAgentUpgradeBlockingErrorDetails -from ._models_py3 import InMageRcmApplianceDetails -from ._models_py3 import InMageRcmApplianceSpecificDetails -from ._models_py3 import InMageRcmApplyRecoveryPointInput -from ._models_py3 import InMageRcmDiscoveredProtectedVmDetails -from ._models_py3 import InMageRcmDiskInput -from ._models_py3 import InMageRcmDisksDefaultInput -from ._models_py3 import InMageRcmEnableProtectionInput -from ._models_py3 import InMageRcmEventDetails -from ._models_py3 import InMageRcmFabricCreationInput -from ._models_py3 import InMageRcmFabricSpecificDetails -from ._models_py3 import InMageRcmFabricSwitchProviderBlockingErrorDetails -from ._models_py3 import InMageRcmFailbackDiscoveredProtectedVmDetails -from ._models_py3 import InMageRcmFailbackEventDetails -from ._models_py3 import InMageRcmFailbackMobilityAgentDetails -from ._models_py3 import InMageRcmFailbackNicDetails -from ._models_py3 import InMageRcmFailbackPlannedFailoverProviderInput -from ._models_py3 import InMageRcmFailbackPolicyCreationInput -from ._models_py3 import InMageRcmFailbackPolicyDetails -from ._models_py3 import InMageRcmFailbackProtectedDiskDetails -from ._models_py3 import InMageRcmFailbackReplicationDetails -from ._models_py3 import InMageRcmFailbackReprotectInput -from ._models_py3 import InMageRcmFailbackSyncDetails -from ._models_py3 import InMageRcmLastAgentUpgradeErrorDetails -from ._models_py3 import InMageRcmMobilityAgentDetails -from ._models_py3 import InMageRcmNicDetails -from ._models_py3 import InMageRcmNicInput -from ._models_py3 import InMageRcmPolicyCreationInput -from ._models_py3 import InMageRcmPolicyDetails -from ._models_py3 import InMageRcmProtectedDiskDetails -from ._models_py3 import InMageRcmProtectionContainerMappingDetails -from ._models_py3 import InMageRcmRecoveryPointDetails -from ._models_py3 import InMageRcmReplicationDetails -from ._models_py3 import InMageRcmReprotectInput -from ._models_py3 import InMageRcmSyncDetails -from ._models_py3 import InMageRcmTestFailoverInput -from ._models_py3 import InMageRcmUnplannedFailoverInput -from ._models_py3 import InMageRcmUpdateApplianceForReplicationProtectedItemInput -from ._models_py3 import InMageRcmUpdateContainerMappingInput -from ._models_py3 import InMageRcmUpdateReplicationProtectedItemInput -from ._models_py3 import InMageReplicationDetails -from ._models_py3 import InMageReprotectInput -from ._models_py3 import InMageTestFailoverInput -from ._models_py3 import InMageUnplannedFailoverInput -from ._models_py3 import InMageVolumeExclusionOptions -from ._models_py3 import InconsistentVmDetails -from ._models_py3 import InitialReplicationDetails -from ._models_py3 import InlineWorkflowTaskDetails -from ._models_py3 import InnerHealthError -from ._models_py3 import InputEndpoint -from ._models_py3 import Job -from ._models_py3 import JobCollection -from ._models_py3 import JobDetails -from ._models_py3 import JobEntity -from ._models_py3 import JobErrorDetails -from ._models_py3 import JobProperties -from ._models_py3 import JobQueryParameter -from ._models_py3 import JobStatusEventDetails -from ._models_py3 import JobTaskDetails -from ._models_py3 import KeyEncryptionKeyInfo -from ._models_py3 import LogicalNetwork -from ._models_py3 import LogicalNetworkCollection -from ._models_py3 import LogicalNetworkProperties -from ._models_py3 import ManualActionTaskDetails -from ._models_py3 import MarsAgentDetails -from ._models_py3 import MasterTargetServer -from ._models_py3 import MigrateInput -from ._models_py3 import MigrateInputProperties -from ._models_py3 import MigrateProviderSpecificInput -from ._models_py3 import MigrationItem -from ._models_py3 import MigrationItemCollection -from ._models_py3 import MigrationItemProperties -from ._models_py3 import MigrationItemsQueryParameter -from ._models_py3 import MigrationProviderSpecificSettings -from ._models_py3 import MigrationRecoveryPoint -from ._models_py3 import MigrationRecoveryPointCollection -from ._models_py3 import MigrationRecoveryPointProperties -from ._models_py3 import MobilityServiceUpdate -from ._models_py3 import Network -from ._models_py3 import NetworkCollection -from ._models_py3 import NetworkMapping -from ._models_py3 import NetworkMappingCollection -from ._models_py3 import NetworkMappingFabricSpecificSettings -from ._models_py3 import NetworkMappingProperties -from ._models_py3 import NetworkProperties -from ._models_py3 import NewProtectionProfile -from ._models_py3 import NewRecoveryVirtualNetwork -from ._models_py3 import OSDetails -from ._models_py3 import OSDiskDetails -from ._models_py3 import OSUpgradeSupportedVersions -from ._models_py3 import OSVersionWrapper -from ._models_py3 import OperationsDiscovery -from ._models_py3 import OperationsDiscoveryCollection -from ._models_py3 import PauseReplicationInput -from ._models_py3 import PauseReplicationInputProperties -from ._models_py3 import PlannedFailoverInput -from ._models_py3 import PlannedFailoverInputProperties -from ._models_py3 import PlannedFailoverProviderSpecificFailoverInput -from ._models_py3 import Policy -from ._models_py3 import PolicyCollection -from ._models_py3 import PolicyProperties -from ._models_py3 import PolicyProviderSpecificDetails -from ._models_py3 import PolicyProviderSpecificInput -from ._models_py3 import ProcessServer -from ._models_py3 import ProcessServerDetails -from ._models_py3 import ProtectableItem -from ._models_py3 import ProtectableItemCollection -from ._models_py3 import ProtectableItemProperties -from ._models_py3 import ProtectableItemQueryParameter -from ._models_py3 import ProtectedItemsQueryParameter -from ._models_py3 import ProtectionContainer -from ._models_py3 import ProtectionContainerCollection -from ._models_py3 import ProtectionContainerFabricSpecificDetails -from ._models_py3 import ProtectionContainerMapping -from ._models_py3 import ProtectionContainerMappingCollection -from ._models_py3 import ProtectionContainerMappingProperties -from ._models_py3 import ProtectionContainerMappingProviderSpecificDetails -from ._models_py3 import ProtectionContainerProperties -from ._models_py3 import ProtectionProfileCustomDetails -from ._models_py3 import ProviderError -from ._models_py3 import ProviderSpecificRecoveryPointDetails -from ._models_py3 import PushInstallerDetails -from ._models_py3 import RcmProxyDetails -from ._models_py3 import RecoveryAvailabilitySetCustomDetails -from ._models_py3 import RecoveryPlan -from ._models_py3 import RecoveryPlanA2ADetails -from ._models_py3 import RecoveryPlanA2AFailoverInput -from ._models_py3 import RecoveryPlanA2AInput -from ._models_py3 import RecoveryPlanAction -from ._models_py3 import RecoveryPlanActionDetails -from ._models_py3 import RecoveryPlanAutomationRunbookActionDetails -from ._models_py3 import RecoveryPlanCollection -from ._models_py3 import RecoveryPlanGroup -from ._models_py3 import RecoveryPlanGroupTaskDetails -from ._models_py3 import RecoveryPlanHyperVReplicaAzureFailbackInput -from ._models_py3 import RecoveryPlanHyperVReplicaAzureFailoverInput -from ._models_py3 import RecoveryPlanInMageAzureV2FailoverInput -from ._models_py3 import RecoveryPlanInMageFailoverInput -from ._models_py3 import RecoveryPlanInMageRcmFailbackFailoverInput -from ._models_py3 import RecoveryPlanInMageRcmFailoverInput -from ._models_py3 import RecoveryPlanManualActionDetails -from ._models_py3 import RecoveryPlanPlannedFailoverInput -from ._models_py3 import RecoveryPlanPlannedFailoverInputProperties -from ._models_py3 import RecoveryPlanProperties -from ._models_py3 import RecoveryPlanProtectedItem -from ._models_py3 import RecoveryPlanProviderSpecificDetails -from ._models_py3 import RecoveryPlanProviderSpecificFailoverInput -from ._models_py3 import RecoveryPlanProviderSpecificInput -from ._models_py3 import RecoveryPlanScriptActionDetails -from ._models_py3 import RecoveryPlanShutdownGroupTaskDetails -from ._models_py3 import RecoveryPlanTestFailoverCleanupInput -from ._models_py3 import RecoveryPlanTestFailoverCleanupInputProperties -from ._models_py3 import RecoveryPlanTestFailoverInput -from ._models_py3 import RecoveryPlanTestFailoverInputProperties -from ._models_py3 import RecoveryPlanUnplannedFailoverInput -from ._models_py3 import RecoveryPlanUnplannedFailoverInputProperties -from ._models_py3 import RecoveryPoint -from ._models_py3 import RecoveryPointCollection -from ._models_py3 import RecoveryPointProperties -from ._models_py3 import RecoveryProximityPlacementGroupCustomDetails -from ._models_py3 import RecoveryResourceGroupCustomDetails -from ._models_py3 import RecoveryServicesProvider -from ._models_py3 import RecoveryServicesProviderCollection -from ._models_py3 import RecoveryServicesProviderProperties -from ._models_py3 import RecoveryVirtualNetworkCustomDetails -from ._models_py3 import RemoveDisksInput -from ._models_py3 import RemoveDisksInputProperties -from ._models_py3 import RemoveDisksProviderSpecificInput -from ._models_py3 import RemoveProtectionContainerMappingInput -from ._models_py3 import RemoveProtectionContainerMappingInputProperties -from ._models_py3 import RenewCertificateInput -from ._models_py3 import RenewCertificateInputProperties -from ._models_py3 import ReplicationAgentDetails -from ._models_py3 import ReplicationAppliance -from ._models_py3 import ReplicationApplianceProperties -from ._models_py3 import ReplicationEligibilityResults -from ._models_py3 import ReplicationEligibilityResultsCollection -from ._models_py3 import ReplicationEligibilityResultsErrorInfo -from ._models_py3 import ReplicationEligibilityResultsProperties -from ._models_py3 import ReplicationGroupDetails -from ._models_py3 import ReplicationProtectedItem -from ._models_py3 import ReplicationProtectedItemCollection -from ._models_py3 import ReplicationProtectedItemProperties -from ._models_py3 import ReplicationProtectionIntent -from ._models_py3 import ReplicationProtectionIntentCollection -from ._models_py3 import ReplicationProtectionIntentProperties -from ._models_py3 import ReplicationProtectionIntentProviderSpecificSettings -from ._models_py3 import ReplicationProviderContainerUnmappingInput -from ._models_py3 import ReplicationProviderSpecificContainerCreationInput -from ._models_py3 import ReplicationProviderSpecificContainerMappingInput -from ._models_py3 import ReplicationProviderSpecificSettings -from ._models_py3 import ReplicationProviderSpecificUpdateContainerMappingInput -from ._models_py3 import ReprotectAgentDetails -from ._models_py3 import ResolveHealthError -from ._models_py3 import ResolveHealthInput -from ._models_py3 import ResolveHealthInputProperties -from ._models_py3 import Resource -from ._models_py3 import ResourceHealthSummary -from ._models_py3 import ResumeJobParams -from ._models_py3 import ResumeJobParamsProperties -from ._models_py3 import ResumeReplicationInput -from ._models_py3 import ResumeReplicationInputProperties -from ._models_py3 import ResumeReplicationProviderSpecificInput -from ._models_py3 import ResyncInput -from ._models_py3 import ResyncInputProperties -from ._models_py3 import ResyncProviderSpecificInput -from ._models_py3 import RetentionVolume -from ._models_py3 import ReverseReplicationInput -from ._models_py3 import ReverseReplicationInputProperties -from ._models_py3 import ReverseReplicationProviderSpecificInput -from ._models_py3 import RoleAssignment -from ._models_py3 import RunAsAccount -from ._models_py3 import ScriptActionTaskDetails -from ._models_py3 import ServiceError -from ._models_py3 import StorageAccountCustomDetails -from ._models_py3 import StorageClassification -from ._models_py3 import StorageClassificationCollection -from ._models_py3 import StorageClassificationMapping -from ._models_py3 import StorageClassificationMappingCollection -from ._models_py3 import StorageClassificationMappingInput -from ._models_py3 import StorageClassificationMappingProperties -from ._models_py3 import StorageClassificationProperties -from ._models_py3 import StorageMappingInputProperties -from ._models_py3 import Subnet -from ._models_py3 import SupportedOSDetails -from ._models_py3 import SupportedOSProperties -from ._models_py3 import SupportedOSProperty -from ._models_py3 import SupportedOperatingSystems -from ._models_py3 import SwitchProtectionInput -from ._models_py3 import SwitchProtectionInputProperties -from ._models_py3 import SwitchProtectionJobDetails -from ._models_py3 import SwitchProtectionProviderSpecificInput -from ._models_py3 import SwitchProviderInput -from ._models_py3 import SwitchProviderInputProperties -from ._models_py3 import SwitchProviderSpecificInput -from ._models_py3 import TargetComputeSize -from ._models_py3 import TargetComputeSizeCollection -from ._models_py3 import TargetComputeSizeProperties -from ._models_py3 import TaskTypeDetails -from ._models_py3 import TestFailoverCleanupInput -from ._models_py3 import TestFailoverCleanupInputProperties -from ._models_py3 import TestFailoverInput -from ._models_py3 import TestFailoverInputProperties -from ._models_py3 import TestFailoverJobDetails -from ._models_py3 import TestFailoverProviderSpecificInput -from ._models_py3 import TestMigrateCleanupInput -from ._models_py3 import TestMigrateCleanupInputProperties -from ._models_py3 import TestMigrateInput -from ._models_py3 import TestMigrateInputProperties -from ._models_py3 import TestMigrateProviderSpecificInput -from ._models_py3 import UnplannedFailoverInput -from ._models_py3 import UnplannedFailoverInputProperties -from ._models_py3 import UnplannedFailoverProviderSpecificInput -from ._models_py3 import UpdateApplianceForReplicationProtectedItemInput -from ._models_py3 import UpdateApplianceForReplicationProtectedItemInputProperties -from ._models_py3 import UpdateApplianceForReplicationProtectedItemProviderSpecificInput -from ._models_py3 import UpdateDiskInput -from ._models_py3 import UpdateMigrationItemInput -from ._models_py3 import UpdateMigrationItemInputProperties -from ._models_py3 import UpdateMigrationItemProviderSpecificInput -from ._models_py3 import UpdateMobilityServiceRequest -from ._models_py3 import UpdateMobilityServiceRequestProperties -from ._models_py3 import UpdateNetworkMappingInput -from ._models_py3 import UpdateNetworkMappingInputProperties -from ._models_py3 import UpdatePolicyInput -from ._models_py3 import UpdatePolicyInputProperties -from ._models_py3 import UpdateProtectionContainerMappingInput -from ._models_py3 import UpdateProtectionContainerMappingInputProperties -from ._models_py3 import UpdateRecoveryPlanInput -from ._models_py3 import UpdateRecoveryPlanInputProperties -from ._models_py3 import UpdateReplicationProtectedItemInput -from ._models_py3 import UpdateReplicationProtectedItemInputProperties -from ._models_py3 import UpdateReplicationProtectedItemProviderInput -from ._models_py3 import UpdateVCenterRequest -from ._models_py3 import UpdateVCenterRequestProperties -from ._models_py3 import VCenter -from ._models_py3 import VCenterCollection -from ._models_py3 import VCenterProperties -from ._models_py3 import VMNicDetails -from ._models_py3 import VMNicInputDetails -from ._models_py3 import VMwareCbtContainerCreationInput -from ._models_py3 import VMwareCbtContainerMappingInput -from ._models_py3 import VMwareCbtDiskInput -from ._models_py3 import VMwareCbtEnableMigrationInput -from ._models_py3 import VMwareCbtEventDetails -from ._models_py3 import VMwareCbtMigrateInput -from ._models_py3 import VMwareCbtMigrationDetails -from ._models_py3 import VMwareCbtNicDetails -from ._models_py3 import VMwareCbtNicInput -from ._models_py3 import VMwareCbtPolicyCreationInput -from ._models_py3 import VMwareCbtProtectedDiskDetails -from ._models_py3 import VMwareCbtProtectionContainerMappingDetails -from ._models_py3 import VMwareCbtResumeReplicationInput -from ._models_py3 import VMwareCbtResyncInput -from ._models_py3 import VMwareCbtSecurityProfileProperties -from ._models_py3 import VMwareCbtTestMigrateInput -from ._models_py3 import VMwareCbtUpdateDiskInput -from ._models_py3 import VMwareCbtUpdateMigrationItemInput -from ._models_py3 import VMwareDetails -from ._models_py3 import VMwareV2FabricCreationInput -from ._models_py3 import VMwareV2FabricSpecificDetails -from ._models_py3 import VMwareVirtualMachineDetails -from ._models_py3 import VaultHealthDetails -from ._models_py3 import VaultHealthProperties -from ._models_py3 import VaultSetting -from ._models_py3 import VaultSettingCollection -from ._models_py3 import VaultSettingCreationInput -from ._models_py3 import VaultSettingCreationInputProperties -from ._models_py3 import VaultSettingProperties -from ._models_py3 import VersionDetails -from ._models_py3 import VirtualMachineTaskDetails -from ._models_py3 import VmNicUpdatesTaskDetails -from ._models_py3 import VmmDetails -from ._models_py3 import VmmToAzureCreateNetworkMappingInput -from ._models_py3 import VmmToAzureNetworkMappingSettings -from ._models_py3 import VmmToAzureUpdateNetworkMappingInput -from ._models_py3 import VmmToVmmCreateNetworkMappingInput -from ._models_py3 import VmmToVmmNetworkMappingSettings -from ._models_py3 import VmmToVmmUpdateNetworkMappingInput -from ._models_py3 import VmmVirtualMachineDetails -from ._models_py3 import VmwareCbtPolicyDetails +from typing import TYPE_CHECKING -from ._site_recovery_management_client_enums import A2ARecoveryAvailabilityType -from ._site_recovery_management_client_enums import A2ARpRecoveryPointType -from ._site_recovery_management_client_enums import AgentAutoUpdateStatus -from ._site_recovery_management_client_enums import AgentUpgradeBlockedReason -from ._site_recovery_management_client_enums import AgentVersionStatus -from ._site_recovery_management_client_enums import AlternateLocationRecoveryOption -from ._site_recovery_management_client_enums import AutoProtectionOfDataDisk -from ._site_recovery_management_client_enums import AutomationAccountAuthenticationType -from ._site_recovery_management_client_enums import ChurnOptionSelected -from ._site_recovery_management_client_enums import DataSyncStatus -from ._site_recovery_management_client_enums import DisableProtectionReason -from ._site_recovery_management_client_enums import DiskAccountType -from ._site_recovery_management_client_enums import DiskReplicationProgressHealth -from ._site_recovery_management_client_enums import EthernetAddressType -from ._site_recovery_management_client_enums import ExportJobOutputSerializationType -from ._site_recovery_management_client_enums import ExtendedLocationType -from ._site_recovery_management_client_enums import FailoverDeploymentModel -from ._site_recovery_management_client_enums import HealthErrorCategory -from ._site_recovery_management_client_enums import HealthErrorCustomerResolvability -from ._site_recovery_management_client_enums import HyperVReplicaAzureRpRecoveryPointType -from ._site_recovery_management_client_enums import InMageRcmFailbackRecoveryPointType -from ._site_recovery_management_client_enums import InMageV2RpRecoveryPointType -from ._site_recovery_management_client_enums import LicenseType -from ._site_recovery_management_client_enums import MigrationItemOperation -from ._site_recovery_management_client_enums import MigrationRecoveryPointType -from ._site_recovery_management_client_enums import MigrationState -from ._site_recovery_management_client_enums import MobilityAgentUpgradeState -from ._site_recovery_management_client_enums import MultiVmGroupCreateOption -from ._site_recovery_management_client_enums import MultiVmSyncPointOption -from ._site_recovery_management_client_enums import PlannedFailoverStatus -from ._site_recovery_management_client_enums import PossibleOperationsDirections -from ._site_recovery_management_client_enums import PresenceStatus -from ._site_recovery_management_client_enums import ProtectionHealth -from ._site_recovery_management_client_enums import RcmComponentStatus -from ._site_recovery_management_client_enums import RecoveryPlanActionLocation -from ._site_recovery_management_client_enums import RecoveryPlanGroupType -from ._site_recovery_management_client_enums import RecoveryPlanPointType -from ._site_recovery_management_client_enums import RecoveryPointSyncType -from ._site_recovery_management_client_enums import RecoveryPointType -from ._site_recovery_management_client_enums import ReplicationProtectedItemOperation -from ._site_recovery_management_client_enums import ResyncState -from ._site_recovery_management_client_enums import RpInMageRecoveryPointType -from ._site_recovery_management_client_enums import SecurityType -from ._site_recovery_management_client_enums import SetMultiVmSyncStatus -from ._site_recovery_management_client_enums import Severity -from ._site_recovery_management_client_enums import SourceSiteOperations -from ._site_recovery_management_client_enums import SqlServerLicenseType -from ._site_recovery_management_client_enums import TestMigrationState -from ._site_recovery_management_client_enums import VmEncryptionType -from ._site_recovery_management_client_enums import VmReplicationProgressHealth +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._models_py3 import ( # type: ignore + A2AAddDisksInput, + A2AApplyClusterRecoveryPointInput, + A2AApplyRecoveryPointInput, + A2AClusterRecoveryPointDetails, + A2AClusterTestFailoverInput, + A2AClusterUnplannedFailoverInput, + A2AContainerCreationInput, + A2AContainerMappingInput, + A2ACreateProtectionIntentInput, + A2ACrossClusterMigrationApplyRecoveryPointInput, + A2ACrossClusterMigrationContainerCreationInput, + A2ACrossClusterMigrationEnableProtectionInput, + A2ACrossClusterMigrationPolicyCreationInput, + A2ACrossClusterMigrationReplicationDetails, + A2AEnableProtectionInput, + A2AEventDetails, + A2AExtendedLocationDetails, + A2AFabricSpecificLocationDetails, + A2APolicyCreationInput, + A2APolicyDetails, + A2AProtectedDiskDetails, + A2AProtectedItemDetail, + A2AProtectedManagedDiskDetails, + A2AProtectionContainerMappingDetails, + A2AProtectionIntentDiskInputDetails, + A2AProtectionIntentManagedDiskInputDetails, + A2ARecoveryPointDetails, + A2ARemoveDisksInput, + A2AReplicationDetails, + A2AReplicationIntentDetails, + A2AReplicationProtectionClusterDetails, + A2AReprotectInput, + A2ASharedDiskIRErrorDetails, + A2ASharedDiskReplicationDetails, + A2ASwitchClusterProtectionInput, + A2ASwitchProtectionInput, + A2ATestFailoverInput, + A2AUnplannedFailoverInput, + A2AUnprotectedDiskDetails, + A2AUpdateContainerMappingInput, + A2AUpdateReplicationProtectedItemInput, + A2AVmDiskInputDetails, + A2AVmManagedDiskInputDetails, + A2AVmManagedDiskUpdateDetails, + A2AZoneDetails, + ASRTask, + AddDisksInput, + AddDisksInputProperties, + AddDisksProviderSpecificInput, + AddRecoveryServicesProviderInput, + AddRecoveryServicesProviderInputProperties, + AddVCenterRequest, + AddVCenterRequestProperties, + AgentDetails, + AgentDiskDetails, + Alert, + AlertCollection, + AlertProperties, + ApplianceCollection, + ApplianceMonitoringDetails, + ApplianceQueryParameter, + ApplianceResourceDetails, + ApplianceSpecificDetails, + ApplyClusterRecoveryPointInput, + ApplyClusterRecoveryPointInputProperties, + ApplyClusterRecoveryPointProviderSpecificInput, + ApplyRecoveryPointInput, + ApplyRecoveryPointInputProperties, + ApplyRecoveryPointProviderSpecificInput, + AsrJobDetails, + AutomationRunbookTaskDetails, + AzureFabricCreationInput, + AzureFabricSpecificDetails, + AzureToAzureCreateNetworkMappingInput, + AzureToAzureNetworkMappingSettings, + AzureToAzureUpdateNetworkMappingInput, + AzureToAzureVmSyncedConfigDetails, + AzureVmDiskDetails, + ClusterFailoverJobDetails, + ClusterProviderSpecificRecoveryPointDetails, + ClusterRecoveryPoint, + ClusterRecoveryPointCollection, + ClusterRecoveryPointProperties, + ClusterSwitchProtectionJobDetails, + ClusterTestFailoverCleanupInput, + ClusterTestFailoverCleanupInputProperties, + ClusterTestFailoverInput, + ClusterTestFailoverInputProperties, + ClusterTestFailoverJobDetails, + ClusterTestFailoverProviderSpecificInput, + ClusterUnplannedFailoverInput, + ClusterUnplannedFailoverInputProperties, + ClusterUnplannedFailoverProviderSpecificInput, + ComputeSizeErrorDetails, + ConfigurationSettings, + ConfigureAlertRequest, + ConfigureAlertRequestProperties, + ConsistencyCheckTaskDetails, + CreateNetworkMappingInput, + CreateNetworkMappingInputProperties, + CreatePolicyInput, + CreatePolicyInputProperties, + CreateProtectionContainerInput, + CreateProtectionContainerInputProperties, + CreateProtectionContainerMappingInput, + CreateProtectionContainerMappingInputProperties, + CreateProtectionIntentInput, + CreateProtectionIntentProperties, + CreateProtectionIntentProviderSpecificDetails, + CreateRecoveryPlanInput, + CreateRecoveryPlanInputProperties, + CriticalJobHistoryDetails, + CurrentJobDetails, + CurrentScenarioDetails, + DataStore, + DataStoreUtilizationDetails, + DisableProtectionInput, + DisableProtectionInputProperties, + DisableProtectionProviderSpecificInput, + DiscoverProtectableItemRequest, + DiscoverProtectableItemRequestProperties, + DiskDetails, + DiskEncryptionInfo, + DiskEncryptionKeyInfo, + DiskVolumeDetails, + Display, + DraDetails, + EnableMigrationInput, + EnableMigrationInputProperties, + EnableMigrationProviderSpecificInput, + EnableProtectionInput, + EnableProtectionInputProperties, + EnableProtectionProviderSpecificInput, + EncryptionDetails, + ErrorAdditionalInfo, + ErrorDetail, + ErrorResponse, + Event, + EventCollection, + EventProperties, + EventProviderSpecificDetails, + EventQueryParameter, + EventSpecificDetails, + ExistingProtectionProfile, + ExistingRecoveryAvailabilitySet, + ExistingRecoveryProximityPlacementGroup, + ExistingRecoveryResourceGroup, + ExistingRecoveryVirtualNetwork, + ExistingStorageAccount, + ExportJobDetails, + ExtendedLocation, + Fabric, + FabricCollection, + FabricCreationInput, + FabricCreationInputProperties, + FabricProperties, + FabricQueryParameter, + FabricReplicationGroupTaskDetails, + FabricSpecificCreateNetworkMappingInput, + FabricSpecificCreationInput, + FabricSpecificDetails, + FabricSpecificUpdateNetworkMappingInput, + FailoverJobDetails, + FailoverProcessServerRequest, + FailoverProcessServerRequestProperties, + FailoverReplicationProtectedItemDetails, + GatewayOperationDetails, + GroupTaskDetails, + HealthError, + HealthErrorSummary, + HyperVHostDetails, + HyperVReplica2012EventDetails, + HyperVReplica2012R2EventDetails, + HyperVReplicaAzureApplyRecoveryPointInput, + HyperVReplicaAzureDiskInputDetails, + HyperVReplicaAzureEnableProtectionInput, + HyperVReplicaAzureEventDetails, + HyperVReplicaAzureFailbackProviderInput, + HyperVReplicaAzureManagedDiskDetails, + HyperVReplicaAzurePlannedFailoverProviderInput, + HyperVReplicaAzurePolicyDetails, + HyperVReplicaAzurePolicyInput, + HyperVReplicaAzureReplicationDetails, + HyperVReplicaAzureReprotectInput, + HyperVReplicaAzureTestFailoverInput, + HyperVReplicaAzureUnplannedFailoverInput, + HyperVReplicaAzureUpdateReplicationProtectedItemInput, + HyperVReplicaBaseEventDetails, + HyperVReplicaBasePolicyDetails, + HyperVReplicaBaseReplicationDetails, + HyperVReplicaBluePolicyDetails, + HyperVReplicaBluePolicyInput, + HyperVReplicaBlueReplicationDetails, + HyperVReplicaPolicyDetails, + HyperVReplicaPolicyInput, + HyperVReplicaReplicationDetails, + HyperVSiteDetails, + HyperVVirtualMachineDetails, + IPConfigDetails, + IPConfigInputDetails, + IdentityProviderDetails, + IdentityProviderInput, + InMageAgentDetails, + InMageAzureV2ApplyRecoveryPointInput, + InMageAzureV2DiskInputDetails, + InMageAzureV2EnableProtectionInput, + InMageAzureV2EventDetails, + InMageAzureV2ManagedDiskDetails, + InMageAzureV2PolicyDetails, + InMageAzureV2PolicyInput, + InMageAzureV2ProtectedDiskDetails, + InMageAzureV2RecoveryPointDetails, + InMageAzureV2ReplicationDetails, + InMageAzureV2ReprotectInput, + InMageAzureV2SwitchProviderBlockingErrorDetails, + InMageAzureV2SwitchProviderDetails, + InMageAzureV2SwitchProviderInput, + InMageAzureV2TestFailoverInput, + InMageAzureV2UnplannedFailoverInput, + InMageAzureV2UpdateReplicationProtectedItemInput, + InMageBasePolicyDetails, + InMageDisableProtectionProviderSpecificInput, + InMageDiskDetails, + InMageDiskExclusionInput, + InMageDiskSignatureExclusionOptions, + InMageEnableProtectionInput, + InMageFabricSwitchProviderBlockingErrorDetails, + InMagePolicyDetails, + InMagePolicyInput, + InMageProtectedDiskDetails, + InMageRcmAddDisksInput, + InMageRcmAgentUpgradeBlockingErrorDetails, + InMageRcmApplianceDetails, + InMageRcmApplianceSpecificDetails, + InMageRcmApplyRecoveryPointInput, + InMageRcmDiscoveredProtectedVmDetails, + InMageRcmDiskInput, + InMageRcmDisksDefaultInput, + InMageRcmEnableProtectionInput, + InMageRcmEventDetails, + InMageRcmFabricCreationInput, + InMageRcmFabricSpecificDetails, + InMageRcmFabricSwitchProviderBlockingErrorDetails, + InMageRcmFailbackDiscoveredProtectedVmDetails, + InMageRcmFailbackEventDetails, + InMageRcmFailbackMobilityAgentDetails, + InMageRcmFailbackNicDetails, + InMageRcmFailbackPlannedFailoverProviderInput, + InMageRcmFailbackPolicyCreationInput, + InMageRcmFailbackPolicyDetails, + InMageRcmFailbackProtectedDiskDetails, + InMageRcmFailbackReplicationDetails, + InMageRcmFailbackReprotectInput, + InMageRcmFailbackSyncDetails, + InMageRcmLastAgentUpgradeErrorDetails, + InMageRcmMobilityAgentDetails, + InMageRcmNicDetails, + InMageRcmNicInput, + InMageRcmPolicyCreationInput, + InMageRcmPolicyDetails, + InMageRcmProtectedDiskDetails, + InMageRcmProtectionContainerMappingDetails, + InMageRcmRecoveryPointDetails, + InMageRcmReplicationDetails, + InMageRcmReprotectInput, + InMageRcmSyncDetails, + InMageRcmTestFailoverInput, + InMageRcmUnProtectedDiskDetails, + InMageRcmUnplannedFailoverInput, + InMageRcmUpdateApplianceForReplicationProtectedItemInput, + InMageRcmUpdateContainerMappingInput, + InMageRcmUpdateReplicationProtectedItemInput, + InMageReplicationDetails, + InMageReprotectInput, + InMageTestFailoverInput, + InMageUnplannedFailoverInput, + InMageVolumeExclusionOptions, + InconsistentVmDetails, + InitialReplicationDetails, + InlineWorkflowTaskDetails, + InnerHealthError, + InputEndpoint, + Job, + JobCollection, + JobDetails, + JobEntity, + JobErrorDetails, + JobProperties, + JobQueryParameter, + JobStatusEventDetails, + JobTaskDetails, + KeyEncryptionKeyInfo, + LogicalNetwork, + LogicalNetworkCollection, + LogicalNetworkProperties, + ManagedRunCommandScriptInput, + ManualActionTaskDetails, + MarsAgentDetails, + MasterTargetServer, + MigrateInput, + MigrateInputProperties, + MigrateProviderSpecificInput, + MigrationItem, + MigrationItemCollection, + MigrationItemProperties, + MigrationItemsQueryParameter, + MigrationProviderSpecificSettings, + MigrationRecoveryPoint, + MigrationRecoveryPointCollection, + MigrationRecoveryPointProperties, + MobilityServiceUpdate, + Network, + NetworkCollection, + NetworkMapping, + NetworkMappingCollection, + NetworkMappingFabricSpecificSettings, + NetworkMappingProperties, + NetworkProperties, + NewProtectionProfile, + NewRecoveryVirtualNetwork, + OSDetails, + OSDiskDetails, + OSUpgradeSupportedVersions, + OSVersionWrapper, + OperationsDiscovery, + OperationsDiscoveryCollection, + PauseReplicationInput, + PauseReplicationInputProperties, + PlannedFailoverInput, + PlannedFailoverInputProperties, + PlannedFailoverProviderSpecificFailoverInput, + Policy, + PolicyCollection, + PolicyProperties, + PolicyProviderSpecificDetails, + PolicyProviderSpecificInput, + ProcessServer, + ProcessServerDetails, + ProtectableItem, + ProtectableItemCollection, + ProtectableItemProperties, + ProtectableItemQueryParameter, + ProtectedClustersQueryParameter, + ProtectedItemsQueryParameter, + ProtectionContainer, + ProtectionContainerCollection, + ProtectionContainerFabricSpecificDetails, + ProtectionContainerMapping, + ProtectionContainerMappingCollection, + ProtectionContainerMappingProperties, + ProtectionContainerMappingProviderSpecificDetails, + ProtectionContainerProperties, + ProtectionProfileCustomDetails, + ProviderError, + ProviderSpecificRecoveryPointDetails, + PushInstallerDetails, + RcmProxyDetails, + RecoveryAvailabilitySetCustomDetails, + RecoveryPlan, + RecoveryPlanA2ADetails, + RecoveryPlanA2AFailoverInput, + RecoveryPlanA2AInput, + RecoveryPlanAction, + RecoveryPlanActionDetails, + RecoveryPlanAutomationRunbookActionDetails, + RecoveryPlanCollection, + RecoveryPlanGroup, + RecoveryPlanGroupTaskDetails, + RecoveryPlanHyperVReplicaAzureFailbackInput, + RecoveryPlanHyperVReplicaAzureFailoverInput, + RecoveryPlanInMageAzureV2FailoverInput, + RecoveryPlanInMageFailoverInput, + RecoveryPlanInMageRcmFailbackFailoverInput, + RecoveryPlanInMageRcmFailoverInput, + RecoveryPlanManualActionDetails, + RecoveryPlanPlannedFailoverInput, + RecoveryPlanPlannedFailoverInputProperties, + RecoveryPlanProperties, + RecoveryPlanProtectedItem, + RecoveryPlanProviderSpecificDetails, + RecoveryPlanProviderSpecificFailoverInput, + RecoveryPlanProviderSpecificInput, + RecoveryPlanScriptActionDetails, + RecoveryPlanShutdownGroupTaskDetails, + RecoveryPlanTestFailoverCleanupInput, + RecoveryPlanTestFailoverCleanupInputProperties, + RecoveryPlanTestFailoverInput, + RecoveryPlanTestFailoverInputProperties, + RecoveryPlanUnplannedFailoverInput, + RecoveryPlanUnplannedFailoverInputProperties, + RecoveryPoint, + RecoveryPointCollection, + RecoveryPointProperties, + RecoveryProximityPlacementGroupCustomDetails, + RecoveryResourceGroupCustomDetails, + RecoveryServicesProvider, + RecoveryServicesProviderCollection, + RecoveryServicesProviderProperties, + RecoveryVirtualNetworkCustomDetails, + RegisteredClusterNodes, + RemoveDisksInput, + RemoveDisksInputProperties, + RemoveDisksProviderSpecificInput, + RemoveProtectionContainerMappingInput, + RemoveProtectionContainerMappingInputProperties, + RenewCertificateInput, + RenewCertificateInputProperties, + ReplicationAgentDetails, + ReplicationAppliance, + ReplicationApplianceProperties, + ReplicationClusterProviderSpecificSettings, + ReplicationEligibilityResults, + ReplicationEligibilityResultsCollection, + ReplicationEligibilityResultsErrorInfo, + ReplicationEligibilityResultsProperties, + ReplicationGroupDetails, + ReplicationProtectedItem, + ReplicationProtectedItemCollection, + ReplicationProtectedItemProperties, + ReplicationProtectionCluster, + ReplicationProtectionClusterCollection, + ReplicationProtectionClusterProperties, + ReplicationProtectionIntent, + ReplicationProtectionIntentCollection, + ReplicationProtectionIntentProperties, + ReplicationProtectionIntentProviderSpecificSettings, + ReplicationProviderContainerUnmappingInput, + ReplicationProviderSpecificContainerCreationInput, + ReplicationProviderSpecificContainerMappingInput, + ReplicationProviderSpecificSettings, + ReplicationProviderSpecificUpdateContainerMappingInput, + ReprotectAgentDetails, + ResolveHealthError, + ResolveHealthInput, + ResolveHealthInputProperties, + Resource, + ResourceHealthSummary, + ResumeJobParams, + ResumeJobParamsProperties, + ResumeReplicationInput, + ResumeReplicationInputProperties, + ResumeReplicationProviderSpecificInput, + ResyncInput, + ResyncInputProperties, + ResyncProviderSpecificInput, + RetentionVolume, + ReverseReplicationInput, + ReverseReplicationInputProperties, + ReverseReplicationProviderSpecificInput, + RoleAssignment, + RunAsAccount, + ScriptActionTaskDetails, + SecurityProfileProperties, + ServiceError, + SharedDiskReplicationItemProperties, + SharedDiskReplicationProviderSpecificSettings, + StorageAccountCustomDetails, + StorageClassification, + StorageClassificationCollection, + StorageClassificationMapping, + StorageClassificationMappingCollection, + StorageClassificationMappingInput, + StorageClassificationMappingProperties, + StorageClassificationProperties, + StorageMappingInputProperties, + Subnet, + SupportedOSDetails, + SupportedOSProperties, + SupportedOSProperty, + SupportedOperatingSystems, + SwitchClusterProtectionInput, + SwitchClusterProtectionInputProperties, + SwitchClusterProtectionProviderSpecificInput, + SwitchProtectionInput, + SwitchProtectionInputProperties, + SwitchProtectionJobDetails, + SwitchProtectionProviderSpecificInput, + SwitchProviderInput, + SwitchProviderInputProperties, + SwitchProviderSpecificInput, + TargetComputeSize, + TargetComputeSizeCollection, + TargetComputeSizeProperties, + TaskTypeDetails, + TestFailoverCleanupInput, + TestFailoverCleanupInputProperties, + TestFailoverInput, + TestFailoverInputProperties, + TestFailoverJobDetails, + TestFailoverProviderSpecificInput, + TestMigrateCleanupInput, + TestMigrateCleanupInputProperties, + TestMigrateInput, + TestMigrateInputProperties, + TestMigrateProviderSpecificInput, + UnplannedFailoverInput, + UnplannedFailoverInputProperties, + UnplannedFailoverProviderSpecificInput, + UpdateApplianceForReplicationProtectedItemInput, + UpdateApplianceForReplicationProtectedItemInputProperties, + UpdateApplianceForReplicationProtectedItemProviderSpecificInput, + UpdateDiskInput, + UpdateMigrationItemInput, + UpdateMigrationItemInputProperties, + UpdateMigrationItemProviderSpecificInput, + UpdateMobilityServiceRequest, + UpdateMobilityServiceRequestProperties, + UpdateNetworkMappingInput, + UpdateNetworkMappingInputProperties, + UpdatePolicyInput, + UpdatePolicyInputProperties, + UpdateProtectionContainerMappingInput, + UpdateProtectionContainerMappingInputProperties, + UpdateRecoveryPlanInput, + UpdateRecoveryPlanInputProperties, + UpdateReplicationProtectedItemInput, + UpdateReplicationProtectedItemInputProperties, + UpdateReplicationProtectedItemProviderInput, + UpdateVCenterRequest, + UpdateVCenterRequestProperties, + UserCreatedResourceTag, + VCenter, + VCenterCollection, + VCenterProperties, + VMNicDetails, + VMNicInputDetails, + VMwareCbtContainerCreationInput, + VMwareCbtContainerMappingInput, + VMwareCbtDiskInput, + VMwareCbtEnableMigrationInput, + VMwareCbtEventDetails, + VMwareCbtMigrateInput, + VMwareCbtMigrationDetails, + VMwareCbtNicDetails, + VMwareCbtNicInput, + VMwareCbtPolicyCreationInput, + VMwareCbtProtectedDiskDetails, + VMwareCbtProtectionContainerMappingDetails, + VMwareCbtResumeReplicationInput, + VMwareCbtResyncInput, + VMwareCbtSecurityProfileProperties, + VMwareCbtTestMigrateInput, + VMwareCbtUpdateDiskInput, + VMwareCbtUpdateMigrationItemInput, + VMwareDetails, + VMwareV2FabricCreationInput, + VMwareV2FabricSpecificDetails, + VMwareVirtualMachineDetails, + VaultHealthDetails, + VaultHealthProperties, + VaultSetting, + VaultSettingCollection, + VaultSettingCreationInput, + VaultSettingCreationInputProperties, + VaultSettingProperties, + VersionDetails, + VirtualMachineTaskDetails, + VmNicUpdatesTaskDetails, + VmmDetails, + VmmToAzureCreateNetworkMappingInput, + VmmToAzureNetworkMappingSettings, + VmmToAzureUpdateNetworkMappingInput, + VmmToVmmCreateNetworkMappingInput, + VmmToVmmNetworkMappingSettings, + VmmToVmmUpdateNetworkMappingInput, + VmmVirtualMachineDetails, + VmwareCbtPolicyDetails, +) + +from ._site_recovery_management_client_enums import ( # type: ignore + A2ARecoveryAvailabilityType, + A2ARpRecoveryPointType, + AgentAutoUpdateStatus, + AgentUpgradeBlockedReason, + AgentVersionStatus, + AlternateLocationRecoveryOption, + AutoProtectionOfDataDisk, + AutomationAccountAuthenticationType, + ChurnOptionSelected, + ClusterRecoveryPointType, + DataSyncStatus, + DisableProtectionReason, + DiskAccountType, + DiskReplicationProgressHealth, + DiskState, + EthernetAddressType, + ExportJobOutputSerializationType, + ExtendedLocationType, + FailoverDeploymentModel, + FailoverDirection, + HealthErrorCategory, + HealthErrorCustomerResolvability, + HyperVReplicaAzureRpRecoveryPointType, + InMageRcmFailbackRecoveryPointType, + InMageV2RpRecoveryPointType, + LicenseType, + LinuxLicenseType, + MigrationItemOperation, + MigrationRecoveryPointType, + MigrationState, + MobilityAgentUpgradeState, + MultiVmGroupCreateOption, + MultiVmSyncPointOption, + PlannedFailoverStatus, + PossibleOperationsDirections, + PresenceStatus, + ProtectionHealth, + RcmComponentStatus, + RecoveryPlanActionLocation, + RecoveryPlanGroupType, + RecoveryPlanPointType, + RecoveryPointSyncType, + RecoveryPointType, + ReplicationProtectedItemOperation, + ResyncState, + RpInMageRecoveryPointType, + SecurityConfiguration, + SecurityType, + SetMultiVmSyncStatus, + Severity, + SourceSiteOperations, + SqlServerLicenseType, + TestMigrationState, + VmEncryptionType, + VmReplicationProgressHealth, +) from ._patch import __all__ as _patch_all -from ._patch import * # pylint: disable=unused-wildcard-import +from ._patch import * from ._patch import patch_sdk as _patch_sdk __all__ = [ "A2AAddDisksInput", + "A2AApplyClusterRecoveryPointInput", "A2AApplyRecoveryPointInput", + "A2AClusterRecoveryPointDetails", + "A2AClusterTestFailoverInput", + "A2AClusterUnplannedFailoverInput", "A2AContainerCreationInput", "A2AContainerMappingInput", "A2ACreateProtectionIntentInput", @@ -603,6 +667,7 @@ "A2APolicyCreationInput", "A2APolicyDetails", "A2AProtectedDiskDetails", + "A2AProtectedItemDetail", "A2AProtectedManagedDiskDetails", "A2AProtectionContainerMappingDetails", "A2AProtectionIntentDiskInputDetails", @@ -611,7 +676,11 @@ "A2ARemoveDisksInput", "A2AReplicationDetails", "A2AReplicationIntentDetails", + "A2AReplicationProtectionClusterDetails", "A2AReprotectInput", + "A2ASharedDiskIRErrorDetails", + "A2ASharedDiskReplicationDetails", + "A2ASwitchClusterProtectionInput", "A2ASwitchProtectionInput", "A2ATestFailoverInput", "A2AUnplannedFailoverInput", @@ -640,6 +709,9 @@ "ApplianceQueryParameter", "ApplianceResourceDetails", "ApplianceSpecificDetails", + "ApplyClusterRecoveryPointInput", + "ApplyClusterRecoveryPointInputProperties", + "ApplyClusterRecoveryPointProviderSpecificInput", "ApplyRecoveryPointInput", "ApplyRecoveryPointInputProperties", "ApplyRecoveryPointProviderSpecificInput", @@ -652,6 +724,21 @@ "AzureToAzureUpdateNetworkMappingInput", "AzureToAzureVmSyncedConfigDetails", "AzureVmDiskDetails", + "ClusterFailoverJobDetails", + "ClusterProviderSpecificRecoveryPointDetails", + "ClusterRecoveryPoint", + "ClusterRecoveryPointCollection", + "ClusterRecoveryPointProperties", + "ClusterSwitchProtectionJobDetails", + "ClusterTestFailoverCleanupInput", + "ClusterTestFailoverCleanupInputProperties", + "ClusterTestFailoverInput", + "ClusterTestFailoverInputProperties", + "ClusterTestFailoverJobDetails", + "ClusterTestFailoverProviderSpecificInput", + "ClusterUnplannedFailoverInput", + "ClusterUnplannedFailoverInputProperties", + "ClusterUnplannedFailoverProviderSpecificInput", "ComputeSizeErrorDetails", "ConfigurationSettings", "ConfigureAlertRequest", @@ -789,6 +876,7 @@ "InMagePolicyDetails", "InMagePolicyInput", "InMageProtectedDiskDetails", + "InMageRcmAddDisksInput", "InMageRcmAgentUpgradeBlockingErrorDetails", "InMageRcmApplianceDetails", "InMageRcmApplianceSpecificDetails", @@ -825,6 +913,7 @@ "InMageRcmReprotectInput", "InMageRcmSyncDetails", "InMageRcmTestFailoverInput", + "InMageRcmUnProtectedDiskDetails", "InMageRcmUnplannedFailoverInput", "InMageRcmUpdateApplianceForReplicationProtectedItemInput", "InMageRcmUpdateContainerMappingInput", @@ -852,6 +941,7 @@ "LogicalNetwork", "LogicalNetworkCollection", "LogicalNetworkProperties", + "ManagedRunCommandScriptInput", "ManualActionTaskDetails", "MarsAgentDetails", "MasterTargetServer", @@ -898,6 +988,7 @@ "ProtectableItemCollection", "ProtectableItemProperties", "ProtectableItemQueryParameter", + "ProtectedClustersQueryParameter", "ProtectedItemsQueryParameter", "ProtectionContainer", "ProtectionContainerCollection", @@ -954,6 +1045,7 @@ "RecoveryServicesProviderCollection", "RecoveryServicesProviderProperties", "RecoveryVirtualNetworkCustomDetails", + "RegisteredClusterNodes", "RemoveDisksInput", "RemoveDisksInputProperties", "RemoveDisksProviderSpecificInput", @@ -964,6 +1056,7 @@ "ReplicationAgentDetails", "ReplicationAppliance", "ReplicationApplianceProperties", + "ReplicationClusterProviderSpecificSettings", "ReplicationEligibilityResults", "ReplicationEligibilityResultsCollection", "ReplicationEligibilityResultsErrorInfo", @@ -972,6 +1065,9 @@ "ReplicationProtectedItem", "ReplicationProtectedItemCollection", "ReplicationProtectedItemProperties", + "ReplicationProtectionCluster", + "ReplicationProtectionClusterCollection", + "ReplicationProtectionClusterProperties", "ReplicationProtectionIntent", "ReplicationProtectionIntentCollection", "ReplicationProtectionIntentProperties", @@ -1002,7 +1098,10 @@ "RoleAssignment", "RunAsAccount", "ScriptActionTaskDetails", + "SecurityProfileProperties", "ServiceError", + "SharedDiskReplicationItemProperties", + "SharedDiskReplicationProviderSpecificSettings", "StorageAccountCustomDetails", "StorageClassification", "StorageClassificationCollection", @@ -1017,6 +1116,9 @@ "SupportedOSProperties", "SupportedOSProperty", "SupportedOperatingSystems", + "SwitchClusterProtectionInput", + "SwitchClusterProtectionInputProperties", + "SwitchClusterProtectionProviderSpecificInput", "SwitchProtectionInput", "SwitchProtectionInputProperties", "SwitchProtectionJobDetails", @@ -1064,6 +1166,7 @@ "UpdateReplicationProtectedItemProviderInput", "UpdateVCenterRequest", "UpdateVCenterRequestProperties", + "UserCreatedResourceTag", "VCenter", "VCenterCollection", "VCenterProperties", @@ -1119,20 +1222,24 @@ "AutoProtectionOfDataDisk", "AutomationAccountAuthenticationType", "ChurnOptionSelected", + "ClusterRecoveryPointType", "DataSyncStatus", "DisableProtectionReason", "DiskAccountType", "DiskReplicationProgressHealth", + "DiskState", "EthernetAddressType", "ExportJobOutputSerializationType", "ExtendedLocationType", "FailoverDeploymentModel", + "FailoverDirection", "HealthErrorCategory", "HealthErrorCustomerResolvability", "HyperVReplicaAzureRpRecoveryPointType", "InMageRcmFailbackRecoveryPointType", "InMageV2RpRecoveryPointType", "LicenseType", + "LinuxLicenseType", "MigrationItemOperation", "MigrationRecoveryPointType", "MigrationState", @@ -1152,6 +1259,7 @@ "ReplicationProtectedItemOperation", "ResyncState", "RpInMageRecoveryPointType", + "SecurityConfiguration", "SecurityType", "SetMultiVmSyncStatus", "Severity", @@ -1161,5 +1269,5 @@ "VmEncryptionType", "VmReplicationProgressHealth", ] -__all__.extend([p for p in _patch_all if p not in __all__]) +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore _patch_sdk() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_models_py3.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_models_py3.py index 2d2000563022..2e8534b78574 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_models_py3.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_models_py3.py @@ -1,5 +1,5 @@ -# coding=utf-8 # pylint: disable=too-many-lines +# 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. @@ -7,30 +7,24 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping import datetime -import sys from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union from .. import _serialization -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports - if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from .. import models as _models -JSON = MutableMapping[str, Any] # pylint: disable=unsubscriptable-object +JSON = MutableMapping[str, Any] class AddDisksProviderSpecificInput(_serialization.Model): """Add Disks provider specific input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2AAddDisksInput + A2AAddDisksInput, InMageRcmAddDisksInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -44,7 +38,7 @@ class AddDisksProviderSpecificInput(_serialization.Model): "instance_type": {"key": "instanceType", "type": "str"}, } - _subtype_map = {"instance_type": {"A2A": "A2AAddDisksInput"}} + _subtype_map = {"instance_type": {"A2A": "A2AAddDisksInput", "InMageRcm": "InMageRcmAddDisksInput"}} def __init__(self, **kwargs: Any) -> None: """ """ @@ -55,7 +49,7 @@ def __init__(self, **kwargs: Any) -> None: class A2AAddDisksInput(AddDisksProviderSpecificInput): """A2A add disk(s) input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -97,6 +91,57 @@ def __init__( self.vm_managed_disks = vm_managed_disks +class ApplyClusterRecoveryPointProviderSpecificInput(_serialization.Model): # pylint: disable=name-too-long + """Provider specific input for apply cluster recovery point. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AApplyClusterRecoveryPointInput + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + _subtype_map = {"instance_type": {"A2A": "A2AApplyClusterRecoveryPointInput"}} + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class A2AApplyClusterRecoveryPointInput(ApplyClusterRecoveryPointProviderSpecificInput): + """A2A provider specific input for apply cluster recovery point. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: str = "A2A" + + class ApplyRecoveryPointProviderSpecificInput(_serialization.Model): """Provider specific input for apply recovery point. @@ -105,7 +150,7 @@ class ApplyRecoveryPointProviderSpecificInput(_serialization.Model): HyperVReplicaAzureApplyRecoveryPointInput, InMageAzureV2ApplyRecoveryPointInput, InMageRcmApplyRecoveryPointInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -138,7 +183,183 @@ def __init__(self, **kwargs: Any) -> None: class A2AApplyRecoveryPointInput(ApplyRecoveryPointProviderSpecificInput): """ApplyRecoveryPoint input specific to A2A provider. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: str = "A2A" + + +class ClusterProviderSpecificRecoveryPointDetails(_serialization.Model): # pylint: disable=name-too-long + """Replication provider specific cluster recovery point details. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AClusterRecoveryPointDetails + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: Gets the provider type. Required. + :vartype instance_type: str + """ + + _validation = { + "instance_type": {"required": True, "readonly": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + _subtype_map = {"instance_type": {"A2A": "A2AClusterRecoveryPointDetails"}} + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class A2AClusterRecoveryPointDetails(ClusterProviderSpecificRecoveryPointDetails): + """A2A provider specific cluster recovery point details. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: Gets the provider type. Required. + :vartype instance_type: str + :ivar recovery_point_sync_type: A value indicating whether the recovery point is multi VM + consistent. Known values are: "MultiVmSyncRecoveryPoint" and "PerVmRecoveryPoint". + :vartype recovery_point_sync_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPointSyncType + :ivar nodes: The list of nodes representing the cluster. + :vartype nodes: list[str] + """ + + _validation = { + "instance_type": {"required": True, "readonly": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "recovery_point_sync_type": {"key": "recoveryPointSyncType", "type": "str"}, + "nodes": {"key": "nodes", "type": "[str]"}, + } + + def __init__( + self, + *, + recovery_point_sync_type: Optional[Union[str, "_models.RecoveryPointSyncType"]] = None, + nodes: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword recovery_point_sync_type: A value indicating whether the recovery point is multi VM + consistent. Known values are: "MultiVmSyncRecoveryPoint" and "PerVmRecoveryPoint". + :paramtype recovery_point_sync_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPointSyncType + :keyword nodes: The list of nodes representing the cluster. + :paramtype nodes: list[str] + """ + super().__init__(**kwargs) + self.instance_type: str = "A2A" + self.recovery_point_sync_type = recovery_point_sync_type + self.nodes = nodes + + +class ClusterTestFailoverProviderSpecificInput(_serialization.Model): + """Provider specific test cluster failover input. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AClusterTestFailoverInput + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + _subtype_map = {"instance_type": {"A2A": "A2AClusterTestFailoverInput"}} + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class A2AClusterTestFailoverInput(ClusterTestFailoverProviderSpecificInput): + """A2A provider specific input for test cluster failover. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar cluster_recovery_point_id: The cluster recovery point id to be passed to failover to a + particular recovery point. + :vartype cluster_recovery_point_id: str + :ivar individual_node_recovery_points: The list of individual node recovery points. + :vartype individual_node_recovery_points: list[str] + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "cluster_recovery_point_id": {"key": "clusterRecoveryPointId", "type": "str"}, + "individual_node_recovery_points": {"key": "individualNodeRecoveryPoints", "type": "[str]"}, + } + + def __init__( + self, + *, + cluster_recovery_point_id: Optional[str] = None, + individual_node_recovery_points: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword cluster_recovery_point_id: The cluster recovery point id to be passed to failover to a + particular recovery point. + :paramtype cluster_recovery_point_id: str + :keyword individual_node_recovery_points: The list of individual node recovery points. + :paramtype individual_node_recovery_points: list[str] + """ + super().__init__(**kwargs) + self.instance_type: str = "A2A" + self.cluster_recovery_point_id = cluster_recovery_point_id + self.individual_node_recovery_points = individual_node_recovery_points + + +class ClusterUnplannedFailoverProviderSpecificInput(_serialization.Model): # pylint: disable=name-too-long + """Provider specific unplanned cluster failover input. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AClusterUnplannedFailoverInput + + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -152,20 +373,66 @@ class A2AApplyRecoveryPointInput(ApplyRecoveryPointProviderSpecificInput): "instance_type": {"key": "instanceType", "type": "str"}, } + _subtype_map = {"instance_type": {"A2A": "A2AClusterUnplannedFailoverInput"}} + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class A2AClusterUnplannedFailoverInput(ClusterUnplannedFailoverProviderSpecificInput): + """A2A provider specific input for unplanned cluster failover. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar cluster_recovery_point_id: The cluster recovery point id to be passed to failover to a + particular recovery point. + :vartype cluster_recovery_point_id: str + :ivar individual_node_recovery_points: The list of individual node recovery points. + :vartype individual_node_recovery_points: list[str] + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "cluster_recovery_point_id": {"key": "clusterRecoveryPointId", "type": "str"}, + "individual_node_recovery_points": {"key": "individualNodeRecoveryPoints", "type": "[str]"}, + } + + def __init__( + self, + *, + cluster_recovery_point_id: Optional[str] = None, + individual_node_recovery_points: Optional[List[str]] = None, + **kwargs: Any + ) -> None: + """ + :keyword cluster_recovery_point_id: The cluster recovery point id to be passed to failover to a + particular recovery point. + :paramtype cluster_recovery_point_id: str + :keyword individual_node_recovery_points: The list of individual node recovery points. + :paramtype individual_node_recovery_points: list[str] + """ + super().__init__(**kwargs) self.instance_type: str = "A2A" + self.cluster_recovery_point_id = cluster_recovery_point_id + self.individual_node_recovery_points = individual_node_recovery_points -class ReplicationProviderSpecificContainerCreationInput(_serialization.Model): +class ReplicationProviderSpecificContainerCreationInput(_serialization.Model): # pylint: disable=name-too-long """Provider specific input for container creation operation. You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2AContainerCreationInput, A2ACrossClusterMigrationContainerCreationInput, VMwareCbtContainerCreationInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -196,7 +463,7 @@ def __init__(self, **kwargs: Any) -> None: class A2AContainerCreationInput(ReplicationProviderSpecificContainerCreationInput): """A2A cloud creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -216,13 +483,13 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: str = "A2A" -class ReplicationProviderSpecificContainerMappingInput(_serialization.Model): +class ReplicationProviderSpecificContainerMappingInput(_serialization.Model): # pylint: disable=name-too-long """Provider specific input for pairing operations. You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2AContainerMappingInput, VMwareCbtContainerMappingInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -247,7 +514,7 @@ def __init__(self, **kwargs: Any) -> None: class A2AContainerMappingInput(ReplicationProviderSpecificContainerMappingInput): """A2A container mapping input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -303,13 +570,13 @@ def __init__( self.automation_account_authentication_type = automation_account_authentication_type -class CreateProtectionIntentProviderSpecificDetails(_serialization.Model): +class CreateProtectionIntentProviderSpecificDetails(_serialization.Model): # pylint: disable=name-too-long """Create protection intent provider specific input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2ACreateProtectionIntentInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -331,12 +598,10 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2ACreateProtectionIntentInput( - CreateProtectionIntentProviderSpecificDetails -): # pylint: disable=too-many-instance-attributes +class A2ACreateProtectionIntentInput(CreateProtectionIntentProviderSpecificDetails): """A2A create protection intent input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -585,10 +850,12 @@ def __init__( self.automation_account_arm_id = automation_account_arm_id -class A2ACrossClusterMigrationApplyRecoveryPointInput(ApplyRecoveryPointProviderSpecificInput): +class A2ACrossClusterMigrationApplyRecoveryPointInput( + ApplyRecoveryPointProviderSpecificInput +): # pylint: disable=name-too-long """ApplyRecoveryPoint input specific to A2ACrossClusterMigration provider. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -608,10 +875,12 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: str = "A2ACrossClusterMigration" -class A2ACrossClusterMigrationContainerCreationInput(ReplicationProviderSpecificContainerCreationInput): +class A2ACrossClusterMigrationContainerCreationInput( + ReplicationProviderSpecificContainerCreationInput +): # pylint: disable=name-too-long """A2ACrossClusterMigration cloud creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -639,7 +908,7 @@ class EnableProtectionProviderSpecificInput(_serialization.Model): HyperVReplicaAzureEnableProtectionInput, InMageEnableProtectionInput, InMageAzureV2EnableProtectionInput, InMageRcmEnableProtectionInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -670,10 +939,12 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2ACrossClusterMigrationEnableProtectionInput(EnableProtectionProviderSpecificInput): +class A2ACrossClusterMigrationEnableProtectionInput( + EnableProtectionProviderSpecificInput +): # pylint: disable=name-too-long """A2A Cross-Cluster Migration enable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -717,7 +988,7 @@ class PolicyProviderSpecificInput(_serialization.Model): InMageRcmPolicyCreationInput, InMageRcmFailbackPolicyCreationInput, VMwareCbtPolicyCreationInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -751,10 +1022,10 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2ACrossClusterMigrationPolicyCreationInput(PolicyProviderSpecificInput): +class A2ACrossClusterMigrationPolicyCreationInput(PolicyProviderSpecificInput): # pylint: disable=name-too-long """A2A Cross-Cluster Migration Policy creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -784,7 +1055,7 @@ class ReplicationProviderSpecificSettings(_serialization.Model): InMageReplicationDetails, InMageAzureV2ReplicationDetails, InMageRcmReplicationDetails, InMageRcmFailbackReplicationDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -819,10 +1090,10 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2ACrossClusterMigrationReplicationDetails(ReplicationProviderSpecificSettings): +class A2ACrossClusterMigrationReplicationDetails(ReplicationProviderSpecificSettings): # pylint: disable=name-too-long """A2A provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -895,10 +1166,10 @@ def __init__( self.lifecycle_id = lifecycle_id -class A2AEnableProtectionInput(EnableProtectionProviderSpecificInput): # pylint: disable=too-many-instance-attributes +class A2AEnableProtectionInput(EnableProtectionProviderSpecificInput): """A2A enable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -923,6 +1194,8 @@ class A2AEnableProtectionInput(EnableProtectionProviderSpecificInput): # pylint :vartype multi_vm_group_name: str :ivar multi_vm_group_id: The multi vm group id. :vartype multi_vm_group_id: str + :ivar protection_cluster_id: The replication protection cluster Id. + :vartype protection_cluster_id: str :ivar recovery_boot_diag_storage_account_id: The boot diagnostic storage account. :vartype recovery_boot_diag_storage_account_id: str :ivar disk_encryption_info: The recovery disk encryption information (for two pass flows). @@ -964,6 +1237,7 @@ class A2AEnableProtectionInput(EnableProtectionProviderSpecificInput): # pylint "vm_managed_disks": {"key": "vmManagedDisks", "type": "[A2AVmManagedDiskInputDetails]"}, "multi_vm_group_name": {"key": "multiVmGroupName", "type": "str"}, "multi_vm_group_id": {"key": "multiVmGroupId", "type": "str"}, + "protection_cluster_id": {"key": "protectionClusterId", "type": "str"}, "recovery_boot_diag_storage_account_id": {"key": "recoveryBootDiagStorageAccountId", "type": "str"}, "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, "recovery_availability_zone": {"key": "recoveryAvailabilityZone", "type": "str"}, @@ -988,6 +1262,7 @@ def __init__( vm_managed_disks: Optional[List["_models.A2AVmManagedDiskInputDetails"]] = None, multi_vm_group_name: Optional[str] = None, multi_vm_group_id: Optional[str] = None, + protection_cluster_id: Optional[str] = None, recovery_boot_diag_storage_account_id: Optional[str] = None, disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, recovery_availability_zone: Optional[str] = None, @@ -1022,6 +1297,8 @@ def __init__( :paramtype multi_vm_group_name: str :keyword multi_vm_group_id: The multi vm group id. :paramtype multi_vm_group_id: str + :keyword protection_cluster_id: The replication protection cluster Id. + :paramtype protection_cluster_id: str :keyword recovery_boot_diag_storage_account_id: The boot diagnostic storage account. :paramtype recovery_boot_diag_storage_account_id: str :keyword disk_encryption_info: The recovery disk encryption information (for two pass flows). @@ -1057,6 +1334,7 @@ def __init__( self.vm_managed_disks = vm_managed_disks self.multi_vm_group_name = multi_vm_group_name self.multi_vm_group_id = multi_vm_group_id + self.protection_cluster_id = protection_cluster_id self.recovery_boot_diag_storage_account_id = recovery_boot_diag_storage_account_id self.disk_encryption_info = disk_encryption_info self.recovery_availability_zone = recovery_availability_zone @@ -1076,7 +1354,7 @@ class EventProviderSpecificDetails(_serialization.Model): HyperVReplicaAzureEventDetails, HyperVReplicaBaseEventDetails, InMageAzureV2EventDetails, InMageRcmEventDetails, InMageRcmFailbackEventDetails, VMwareCbtEventDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -1113,7 +1391,7 @@ def __init__(self, **kwargs: Any) -> None: class A2AEventDetails(EventProviderSpecificDetails): """Model class for event details of a A2A event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -1216,7 +1494,7 @@ def __init__( self.recovery_extended_location = recovery_extended_location -class A2AFabricSpecificLocationDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class A2AFabricSpecificLocationDetails(_serialization.Model): """ExtendedLocation details data. :ivar initial_primary_zone: The initial source zone info. @@ -1329,7 +1607,7 @@ def __init__( class A2APolicyCreationInput(PolicyProviderSpecificInput): """A2A Policy creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -1401,7 +1679,7 @@ class PolicyProviderSpecificDetails(_serialization.Model): InMageAzureV2PolicyDetails, InMageBasePolicyDetails, InMageRcmPolicyDetails, InMageRcmFailbackPolicyDetails, VmwareCbtPolicyDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -1440,7 +1718,7 @@ def __init__(self, **kwargs: Any) -> None: class A2APolicyDetails(PolicyProviderSpecificDetails): """A2A specific policy details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -1504,7 +1782,7 @@ def __init__( self.crash_consistent_frequency_in_minutes = crash_consistent_frequency_in_minutes -class A2AProtectedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class A2AProtectedDiskDetails(_serialization.Model): """A2A protected disk details. :ivar disk_uri: The disk uri. @@ -1692,58 +1970,150 @@ def __init__( self.tfo_disk_name = tfo_disk_name -class A2AProtectedManagedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes - """A2A protected managed disk details. +class A2AProtectedItemDetail(_serialization.Model): + """A2A specific switch cluster protection input. - :ivar disk_id: The managed disk Arm id. - :vartype disk_id: str - :ivar recovery_resource_group_id: The recovery disk resource group Arm Id. + :ivar vm_managed_disks: The list of vm managed disk details. + :vartype vm_managed_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskInputDetails] + :ivar recovery_resource_group_id: The recovery resource group Id. :vartype recovery_resource_group_id: str - :ivar recovery_target_disk_id: Recovery target disk Arm Id. - :vartype recovery_target_disk_id: str - :ivar recovery_replica_disk_id: Recovery replica disk Arm Id. - :vartype recovery_replica_disk_id: str - :ivar recovery_orignal_target_disk_id: Recovery original target disk Arm Id. - :vartype recovery_orignal_target_disk_id: str - :ivar recovery_replica_disk_account_type: The replica disk type. Its an optional value and will - be same as source disk type if not user provided. - :vartype recovery_replica_disk_account_type: str - :ivar recovery_target_disk_account_type: The target disk type after failover. Its an optional - value and will be same as source disk type if not user provided. - :vartype recovery_target_disk_account_type: str - :ivar recovery_disk_encryption_set_id: The recovery disk encryption set Id. - :vartype recovery_disk_encryption_set_id: str - :ivar primary_disk_encryption_set_id: The primary disk encryption set Id. - :vartype primary_disk_encryption_set_id: str - :ivar disk_name: The disk name. - :vartype disk_name: str - :ivar disk_capacity_in_bytes: The disk capacity in bytes. - :vartype disk_capacity_in_bytes: int - :ivar primary_staging_azure_storage_account_id: The primary staging storage account. - :vartype primary_staging_azure_storage_account_id: str - :ivar disk_type: The type of disk. - :vartype disk_type: str - :ivar resync_required: A value indicating whether resync is required for this disk. - :vartype resync_required: bool - :ivar monitoring_percentage_completion: The percentage of the monitoring job. The type of the - monitoring job is defined by MonitoringJobType property. - :vartype monitoring_percentage_completion: int - :ivar monitoring_job_type: The type of the monitoring job. The progress is contained in - MonitoringPercentageCompletion property. - :vartype monitoring_job_type: str - :ivar data_pending_in_staging_storage_account_in_mb: The data pending for replication in MB at - staging account. - :vartype data_pending_in_staging_storage_account_in_mb: float - :ivar data_pending_at_source_agent_in_mb: The data pending at source virtual machine in MB. - :vartype data_pending_at_source_agent_in_mb: float - :ivar disk_state: The disk state. - :vartype disk_state: str - :ivar allowed_disk_level_operation: The disk level operations list. - :vartype allowed_disk_level_operation: list[str] - :ivar is_disk_encrypted: A value indicating whether vm has encrypted os disk or not. - :vartype is_disk_encrypted: bool - :ivar secret_identifier: The secret URL / identifier (BEK). - :vartype secret_identifier: str + :ivar recovery_availability_set_id: The recovery availability set. + :vartype recovery_availability_set_id: str + :ivar recovery_boot_diag_storage_account_id: The boot diagnostic storage account. + :vartype recovery_boot_diag_storage_account_id: str + :ivar recovery_availability_zone: The recovery availability zone. + :vartype recovery_availability_zone: str + :ivar recovery_proximity_placement_group_id: The recovery proximity placement group Id. + :vartype recovery_proximity_placement_group_id: str + :ivar recovery_virtual_machine_scale_set_id: The virtual machine scale set id. + :vartype recovery_virtual_machine_scale_set_id: str + :ivar recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. + :vartype recovery_capacity_reservation_group_id: str + :ivar disk_encryption_info: The recovery disk encryption information. + :vartype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :ivar replication_protected_item_name: The Replication Protected item name. + :vartype replication_protected_item_name: str + """ + + _attribute_map = { + "vm_managed_disks": {"key": "vmManagedDisks", "type": "[A2AVmManagedDiskInputDetails]"}, + "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, + "recovery_availability_set_id": {"key": "recoveryAvailabilitySetId", "type": "str"}, + "recovery_boot_diag_storage_account_id": {"key": "recoveryBootDiagStorageAccountId", "type": "str"}, + "recovery_availability_zone": {"key": "recoveryAvailabilityZone", "type": "str"}, + "recovery_proximity_placement_group_id": {"key": "recoveryProximityPlacementGroupId", "type": "str"}, + "recovery_virtual_machine_scale_set_id": {"key": "recoveryVirtualMachineScaleSetId", "type": "str"}, + "recovery_capacity_reservation_group_id": {"key": "recoveryCapacityReservationGroupId", "type": "str"}, + "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, + "replication_protected_item_name": {"key": "replicationProtectedItemName", "type": "str"}, + } + + def __init__( + self, + *, + vm_managed_disks: Optional[List["_models.A2AVmManagedDiskInputDetails"]] = None, + recovery_resource_group_id: Optional[str] = None, + recovery_availability_set_id: Optional[str] = None, + recovery_boot_diag_storage_account_id: Optional[str] = None, + recovery_availability_zone: Optional[str] = None, + recovery_proximity_placement_group_id: Optional[str] = None, + recovery_virtual_machine_scale_set_id: Optional[str] = None, + recovery_capacity_reservation_group_id: Optional[str] = None, + disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, + replication_protected_item_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword vm_managed_disks: The list of vm managed disk details. + :paramtype vm_managed_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskInputDetails] + :keyword recovery_resource_group_id: The recovery resource group Id. + :paramtype recovery_resource_group_id: str + :keyword recovery_availability_set_id: The recovery availability set. + :paramtype recovery_availability_set_id: str + :keyword recovery_boot_diag_storage_account_id: The boot diagnostic storage account. + :paramtype recovery_boot_diag_storage_account_id: str + :keyword recovery_availability_zone: The recovery availability zone. + :paramtype recovery_availability_zone: str + :keyword recovery_proximity_placement_group_id: The recovery proximity placement group Id. + :paramtype recovery_proximity_placement_group_id: str + :keyword recovery_virtual_machine_scale_set_id: The virtual machine scale set id. + :paramtype recovery_virtual_machine_scale_set_id: str + :keyword recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. + :paramtype recovery_capacity_reservation_group_id: str + :keyword disk_encryption_info: The recovery disk encryption information. + :paramtype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :keyword replication_protected_item_name: The Replication Protected item name. + :paramtype replication_protected_item_name: str + """ + super().__init__(**kwargs) + self.vm_managed_disks = vm_managed_disks + self.recovery_resource_group_id = recovery_resource_group_id + self.recovery_availability_set_id = recovery_availability_set_id + self.recovery_boot_diag_storage_account_id = recovery_boot_diag_storage_account_id + self.recovery_availability_zone = recovery_availability_zone + self.recovery_proximity_placement_group_id = recovery_proximity_placement_group_id + self.recovery_virtual_machine_scale_set_id = recovery_virtual_machine_scale_set_id + self.recovery_capacity_reservation_group_id = recovery_capacity_reservation_group_id + self.disk_encryption_info = disk_encryption_info + self.replication_protected_item_name = replication_protected_item_name + + +class A2AProtectedManagedDiskDetails(_serialization.Model): + """A2A protected managed disk details. + + :ivar disk_id: The managed disk Arm id. + :vartype disk_id: str + :ivar recovery_resource_group_id: The recovery disk resource group Arm Id. + :vartype recovery_resource_group_id: str + :ivar recovery_target_disk_id: Recovery target disk Arm Id. + :vartype recovery_target_disk_id: str + :ivar recovery_replica_disk_id: Recovery replica disk Arm Id. + :vartype recovery_replica_disk_id: str + :ivar recovery_orignal_target_disk_id: Recovery original target disk Arm Id. + :vartype recovery_orignal_target_disk_id: str + :ivar recovery_replica_disk_account_type: The replica disk type. Its an optional value and will + be same as source disk type if not user provided. + :vartype recovery_replica_disk_account_type: str + :ivar recovery_target_disk_account_type: The target disk type after failover. Its an optional + value and will be same as source disk type if not user provided. + :vartype recovery_target_disk_account_type: str + :ivar recovery_disk_encryption_set_id: The recovery disk encryption set Id. + :vartype recovery_disk_encryption_set_id: str + :ivar primary_disk_encryption_set_id: The primary disk encryption set Id. + :vartype primary_disk_encryption_set_id: str + :ivar disk_name: The disk name. + :vartype disk_name: str + :ivar disk_capacity_in_bytes: The disk capacity in bytes. + :vartype disk_capacity_in_bytes: int + :ivar primary_staging_azure_storage_account_id: The primary staging storage account. + :vartype primary_staging_azure_storage_account_id: str + :ivar disk_type: The type of disk. + :vartype disk_type: str + :ivar resync_required: A value indicating whether resync is required for this disk. + :vartype resync_required: bool + :ivar monitoring_percentage_completion: The percentage of the monitoring job. The type of the + monitoring job is defined by MonitoringJobType property. + :vartype monitoring_percentage_completion: int + :ivar monitoring_job_type: The type of the monitoring job. The progress is contained in + MonitoringPercentageCompletion property. + :vartype monitoring_job_type: str + :ivar data_pending_in_staging_storage_account_in_mb: The data pending for replication in MB at + staging account. + :vartype data_pending_in_staging_storage_account_in_mb: float + :ivar data_pending_at_source_agent_in_mb: The data pending at source virtual machine in MB. + :vartype data_pending_at_source_agent_in_mb: float + :ivar disk_state: The disk state. + :vartype disk_state: str + :ivar allowed_disk_level_operation: The disk level operations list. + :vartype allowed_disk_level_operation: list[str] + :ivar is_disk_encrypted: A value indicating whether vm has encrypted os disk or not. + :vartype is_disk_encrypted: bool + :ivar secret_identifier: The secret URL / identifier (BEK). + :vartype secret_identifier: str :ivar dek_key_vault_arm_id: The KeyVault resource id for secret (BEK). :vartype dek_key_vault_arm_id: str :ivar is_disk_key_encrypted: A value indicating whether disk key got encrypted or not. @@ -1919,14 +2289,14 @@ def __init__( # pylint: disable=too-many-locals self.tfo_disk_name = tfo_disk_name -class ProtectionContainerMappingProviderSpecificDetails(_serialization.Model): +class ProtectionContainerMappingProviderSpecificDetails(_serialization.Model): # pylint: disable=name-too-long """Container mapping provider specific details. You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2AProtectionContainerMappingDetails, InMageRcmProtectionContainerMappingDetails, VMwareCbtProtectionContainerMappingDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -1957,7 +2327,7 @@ def __init__(self, **kwargs: Any) -> None: class A2AProtectionContainerMappingDetails(ProtectionContainerMappingProviderSpecificDetails): """A2A provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -2030,7 +2400,7 @@ def __init__( class A2AProtectionIntentDiskInputDetails(_serialization.Model): """Azure VM unmanaged disk input details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar disk_uri: The disk Uri. Required. :vartype disk_uri: str @@ -2083,10 +2453,10 @@ def __init__( self.primary_staging_storage_account_custom_input = primary_staging_storage_account_custom_input -class A2AProtectionIntentManagedDiskInputDetails(_serialization.Model): +class A2AProtectionIntentManagedDiskInputDetails(_serialization.Model): # pylint: disable=name-too-long """Azure VM managed disk input details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar disk_id: The disk Id. Required. :vartype disk_id: str @@ -2181,7 +2551,7 @@ class ProviderSpecificRecoveryPointDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2ARecoveryPointDetails, InMageAzureV2RecoveryPointDetails, InMageRcmRecoveryPointDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the provider type. Required. :vartype instance_type: str @@ -2212,7 +2582,7 @@ def __init__(self, **kwargs: Any) -> None: class A2ARecoveryPointDetails(ProviderSpecificRecoveryPointDetails): """A2A provider specific recovery point details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the provider type. Required. :vartype instance_type: str @@ -2261,7 +2631,7 @@ class RemoveDisksProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2ARemoveDisksInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -2286,7 +2656,7 @@ def __init__(self, **kwargs: Any) -> None: class A2ARemoveDisksInput(RemoveDisksProviderSpecificInput): """A2A remove disk(s) input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -2325,12 +2695,12 @@ def __init__( self.vm_managed_disks_ids = vm_managed_disks_ids -class A2AReplicationDetails(ReplicationProviderSpecificSettings): # pylint: disable=too-many-instance-attributes +class A2AReplicationDetails(ReplicationProviderSpecificSettings): """A2A provider specific settings. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -2360,6 +2730,10 @@ class A2AReplicationDetails(ReplicationProviderSpecificSettings): # pylint: dis ~azure.mgmt.recoveryservicessiterecovery.models.MultiVmGroupCreateOption :ivar management_id: The management Id. :vartype management_id: str + :ivar protection_cluster_id: The replication protection cluster Id. + :vartype protection_cluster_id: str + :ivar is_cluster_infra_ready: A value indicating if the cluster infra is ready or not. + :vartype is_cluster_infra_ready: bool :ivar protected_disks: The list of protected disks. :vartype protected_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AProtectedDiskDetails] @@ -2494,6 +2868,8 @@ class A2AReplicationDetails(ReplicationProviderSpecificSettings): # pylint: dis "multi_vm_group_name": {"key": "multiVmGroupName", "type": "str"}, "multi_vm_group_create_option": {"key": "multiVmGroupCreateOption", "type": "str"}, "management_id": {"key": "managementId", "type": "str"}, + "protection_cluster_id": {"key": "protectionClusterId", "type": "str"}, + "is_cluster_infra_ready": {"key": "isClusterInfraReady", "type": "bool"}, "protected_disks": {"key": "protectedDisks", "type": "[A2AProtectedDiskDetails]"}, "unprotected_disks": {"key": "unprotectedDisks", "type": "[A2AUnprotectedDiskDetails]"}, "protected_managed_disks": {"key": "protectedManagedDisks", "type": "[A2AProtectedManagedDiskDetails]"}, @@ -2552,6 +2928,8 @@ def __init__( # pylint: disable=too-many-locals multi_vm_group_name: Optional[str] = None, multi_vm_group_create_option: Optional[Union[str, "_models.MultiVmGroupCreateOption"]] = None, management_id: Optional[str] = None, + protection_cluster_id: Optional[str] = None, + is_cluster_infra_ready: Optional[bool] = None, protected_disks: Optional[List["_models.A2AProtectedDiskDetails"]] = None, unprotected_disks: Optional[List["_models.A2AUnprotectedDiskDetails"]] = None, protected_managed_disks: Optional[List["_models.A2AProtectedManagedDiskDetails"]] = None, @@ -2612,6 +2990,10 @@ def __init__( # pylint: disable=too-many-locals ~azure.mgmt.recoveryservicessiterecovery.models.MultiVmGroupCreateOption :keyword management_id: The management Id. :paramtype management_id: str + :keyword protection_cluster_id: The replication protection cluster Id. + :paramtype protection_cluster_id: str + :keyword is_cluster_infra_ready: A value indicating if the cluster infra is ready or not. + :paramtype is_cluster_infra_ready: bool :keyword protected_disks: The list of protected disks. :paramtype protected_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AProtectedDiskDetails] @@ -2711,16 +3093,18 @@ def __init__( # pylint: disable=too-many-locals super().__init__(**kwargs) self.instance_type: str = "A2A" self.fabric_object_id = fabric_object_id - self.initial_primary_zone = None - self.initial_primary_fabric_location = None - self.initial_recovery_zone = None + self.initial_primary_zone: Optional[str] = None + self.initial_primary_fabric_location: Optional[str] = None + self.initial_recovery_zone: Optional[str] = None self.initial_primary_extended_location = initial_primary_extended_location self.initial_recovery_extended_location = initial_recovery_extended_location - self.initial_recovery_fabric_location = None + self.initial_recovery_fabric_location: Optional[str] = None self.multi_vm_group_id = multi_vm_group_id self.multi_vm_group_name = multi_vm_group_name self.multi_vm_group_create_option = multi_vm_group_create_option self.management_id = management_id + self.protection_cluster_id = protection_cluster_id + self.is_cluster_infra_ready = is_cluster_infra_ready self.protected_disks = protected_disks self.unprotected_disks = unprotected_disks self.protected_managed_disks = protected_managed_disks @@ -2743,7 +3127,7 @@ def __init__( # pylint: disable=too-many-locals self.agent_version = agent_version self.agent_expiry_date = agent_expiry_date self.is_replication_agent_update_required = is_replication_agent_update_required - self.agent_certificate_expiry_date = None + self.agent_certificate_expiry_date: Optional[datetime.datetime] = None self.is_replication_agent_certificate_update_required = is_replication_agent_certificate_update_required self.recovery_fabric_object_id = recovery_fabric_object_id self.vm_protection_state = vm_protection_state @@ -2756,23 +3140,23 @@ def __init__( # pylint: disable=too-many-locals self.recovery_availability_zone = recovery_availability_zone self.primary_extended_location = primary_extended_location self.recovery_extended_location = recovery_extended_location - self.vm_encryption_type = None + self.vm_encryption_type: Optional[Union[str, "_models.VmEncryptionType"]] = None self.tfo_azure_vm_name = tfo_azure_vm_name - self.recovery_azure_generation = None + self.recovery_azure_generation: Optional[str] = None self.recovery_proximity_placement_group_id = recovery_proximity_placement_group_id self.auto_protection_of_data_disk = auto_protection_of_data_disk self.recovery_virtual_machine_scale_set_id = recovery_virtual_machine_scale_set_id self.recovery_capacity_reservation_group_id = recovery_capacity_reservation_group_id - self.churn_option_selected = None + self.churn_option_selected: Optional[Union[str, "_models.ChurnOptionSelected"]] = None -class ReplicationProtectionIntentProviderSpecificSettings(_serialization.Model): +class ReplicationProtectionIntentProviderSpecificSettings(_serialization.Model): # pylint: disable=name-too-long """Replication provider specific settings. You probably want to use the sub-classes and not this class directly. Known sub-classes are: A2AReplicationIntentDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -2794,12 +3178,10 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2AReplicationIntentDetails( - ReplicationProtectionIntentProviderSpecificSettings -): # pylint: disable=too-many-instance-attributes +class A2AReplicationIntentDetails(ReplicationProtectionIntentProviderSpecificSettings): """A2A provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -3024,16 +3406,15 @@ def __init__( self.automation_account_authentication_type = automation_account_authentication_type -class ReverseReplicationProviderSpecificInput(_serialization.Model): - """Provider specific reverse replication input. +class ReplicationClusterProviderSpecificSettings(_serialization.Model): # pylint: disable=name-too-long + """Replication cluster provider specific settings. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2AReprotectInput, HyperVReplicaAzureReprotectInput, InMageReprotectInput, - InMageAzureV2ReprotectInput, InMageRcmReprotectInput, InMageRcmFailbackReprotectInput + A2AReplicationProtectionClusterDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str """ @@ -3045,16 +3426,7 @@ class ReverseReplicationProviderSpecificInput(_serialization.Model): "instance_type": {"key": "instanceType", "type": "str"}, } - _subtype_map = { - "instance_type": { - "A2A": "A2AReprotectInput", - "HyperVReplicaAzure": "HyperVReplicaAzureReprotectInput", - "InMage": "InMageReprotectInput", - "InMageAzureV2": "InMageAzureV2ReprotectInput", - "InMageRcm": "InMageRcmReprotectInput", - "InMageRcmFailback": "InMageRcmFailbackReprotectInput", - } - } + _subtype_map = {"instance_type": {"A2A": "A2AReplicationProtectionClusterDetails"}} def __init__(self, **kwargs: Any) -> None: """ """ @@ -3062,25 +3434,63 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2AReprotectInput(ReverseReplicationProviderSpecificInput): - """Azure specific reprotect input. +class A2AReplicationProtectionClusterDetails(ReplicationClusterProviderSpecificSettings): + """A2A provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str - :ivar recovery_container_id: The recovery container Id. - :vartype recovery_container_id: str - :ivar vm_disks: The list of vm disk details. - :vartype vm_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmDiskInputDetails] - :ivar recovery_resource_group_id: The recovery resource group Id. Valid for V2 scenarios. - :vartype recovery_resource_group_id: str - :ivar recovery_cloud_service_id: The recovery cloud service Id. Valid for V1 scenarios. - :vartype recovery_cloud_service_id: str - :ivar recovery_availability_set_id: The recovery availability set. - :vartype recovery_availability_set_id: str - :ivar policy_id: The Policy Id. - :vartype policy_id: str + :ivar multi_vm_group_id: The multi vm group Id. + :vartype multi_vm_group_id: str + :ivar multi_vm_group_name: The multi vm group name. + :vartype multi_vm_group_name: str + :ivar multi_vm_group_create_option: Whether Multi VM group is auto created or specified by + user. Known values are: "AutoCreated" and "UserSpecified". + :vartype multi_vm_group_create_option: str or + ~azure.mgmt.recoveryservicessiterecovery.models.MultiVmGroupCreateOption + :ivar primary_fabric_location: Primary fabric location. + :vartype primary_fabric_location: str + :ivar recovery_fabric_location: The recovery fabric location. + :vartype recovery_fabric_location: str + :ivar failover_recovery_point_id: The recovery point Id to which the cluster was failed over. + :vartype failover_recovery_point_id: str + :ivar cluster_management_id: The cluster management Id. + :vartype cluster_management_id: str + :ivar rpo_in_seconds: The last RPO value in seconds. + :vartype rpo_in_seconds: int + :ivar last_rpo_calculated_time: The time (in UTC) when the last RPO value was calculated by + Protection Service. + :vartype last_rpo_calculated_time: ~datetime.datetime + :ivar initial_primary_zone: The initial primary availability zone. + :vartype initial_primary_zone: str + :ivar initial_primary_fabric_location: The initial primary fabric location. + :vartype initial_primary_fabric_location: str + :ivar initial_recovery_zone: The initial recovery availability zone. + :vartype initial_recovery_zone: str + :ivar initial_recovery_fabric_location: The initial recovery fabric location. + :vartype initial_recovery_fabric_location: str + :ivar initial_primary_extended_location: The initial primary extended location. + :vartype initial_primary_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :ivar initial_recovery_extended_location: The initial recovery extended location. + :vartype initial_recovery_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :ivar primary_availability_zone: The primary availability zone. + :vartype primary_availability_zone: str + :ivar recovery_availability_zone: The recovery availability zone. + :vartype recovery_availability_zone: str + :ivar primary_extended_location: The primary Extended Location. + :vartype primary_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :ivar recovery_extended_location: The recovery Extended Location. + :vartype recovery_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :ivar lifecycle_id: An id that survives actions like switch protection which change the backing + PE/CPE objects internally.The lifecycle id gets carried forward to have a link/continuity in + being able to have an Id that denotes the "same" protected cluster even though other internal + Ids/ARM Id might be changing. + :vartype lifecycle_id: str """ _validation = { @@ -3089,59 +3499,140 @@ class A2AReprotectInput(ReverseReplicationProviderSpecificInput): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "recovery_container_id": {"key": "recoveryContainerId", "type": "str"}, - "vm_disks": {"key": "vmDisks", "type": "[A2AVmDiskInputDetails]"}, - "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, - "recovery_cloud_service_id": {"key": "recoveryCloudServiceId", "type": "str"}, - "recovery_availability_set_id": {"key": "recoveryAvailabilitySetId", "type": "str"}, - "policy_id": {"key": "policyId", "type": "str"}, + "multi_vm_group_id": {"key": "multiVmGroupId", "type": "str"}, + "multi_vm_group_name": {"key": "multiVmGroupName", "type": "str"}, + "multi_vm_group_create_option": {"key": "multiVmGroupCreateOption", "type": "str"}, + "primary_fabric_location": {"key": "primaryFabricLocation", "type": "str"}, + "recovery_fabric_location": {"key": "recoveryFabricLocation", "type": "str"}, + "failover_recovery_point_id": {"key": "failoverRecoveryPointId", "type": "str"}, + "cluster_management_id": {"key": "clusterManagementId", "type": "str"}, + "rpo_in_seconds": {"key": "rpoInSeconds", "type": "int"}, + "last_rpo_calculated_time": {"key": "lastRpoCalculatedTime", "type": "iso-8601"}, + "initial_primary_zone": {"key": "initialPrimaryZone", "type": "str"}, + "initial_primary_fabric_location": {"key": "initialPrimaryFabricLocation", "type": "str"}, + "initial_recovery_zone": {"key": "initialRecoveryZone", "type": "str"}, + "initial_recovery_fabric_location": {"key": "initialRecoveryFabricLocation", "type": "str"}, + "initial_primary_extended_location": {"key": "initialPrimaryExtendedLocation", "type": "ExtendedLocation"}, + "initial_recovery_extended_location": {"key": "initialRecoveryExtendedLocation", "type": "ExtendedLocation"}, + "primary_availability_zone": {"key": "primaryAvailabilityZone", "type": "str"}, + "recovery_availability_zone": {"key": "recoveryAvailabilityZone", "type": "str"}, + "primary_extended_location": {"key": "primaryExtendedLocation", "type": "ExtendedLocation"}, + "recovery_extended_location": {"key": "recoveryExtendedLocation", "type": "ExtendedLocation"}, + "lifecycle_id": {"key": "lifecycleId", "type": "str"}, } def __init__( self, *, - recovery_container_id: Optional[str] = None, - vm_disks: Optional[List["_models.A2AVmDiskInputDetails"]] = None, - recovery_resource_group_id: Optional[str] = None, - recovery_cloud_service_id: Optional[str] = None, - recovery_availability_set_id: Optional[str] = None, - policy_id: Optional[str] = None, - **kwargs: Any - ) -> None: - """ - :keyword recovery_container_id: The recovery container Id. - :paramtype recovery_container_id: str - :keyword vm_disks: The list of vm disk details. - :paramtype vm_disks: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmDiskInputDetails] - :keyword recovery_resource_group_id: The recovery resource group Id. Valid for V2 scenarios. - :paramtype recovery_resource_group_id: str - :keyword recovery_cloud_service_id: The recovery cloud service Id. Valid for V1 scenarios. - :paramtype recovery_cloud_service_id: str - :keyword recovery_availability_set_id: The recovery availability set. - :paramtype recovery_availability_set_id: str - :keyword policy_id: The Policy Id. - :paramtype policy_id: str - """ + multi_vm_group_id: Optional[str] = None, + multi_vm_group_name: Optional[str] = None, + multi_vm_group_create_option: Optional[Union[str, "_models.MultiVmGroupCreateOption"]] = None, + primary_fabric_location: Optional[str] = None, + recovery_fabric_location: Optional[str] = None, + failover_recovery_point_id: Optional[str] = None, + cluster_management_id: Optional[str] = None, + rpo_in_seconds: Optional[int] = None, + last_rpo_calculated_time: Optional[datetime.datetime] = None, + initial_primary_zone: Optional[str] = None, + initial_primary_fabric_location: Optional[str] = None, + initial_recovery_zone: Optional[str] = None, + initial_recovery_fabric_location: Optional[str] = None, + initial_primary_extended_location: Optional["_models.ExtendedLocation"] = None, + initial_recovery_extended_location: Optional["_models.ExtendedLocation"] = None, + primary_availability_zone: Optional[str] = None, + recovery_availability_zone: Optional[str] = None, + primary_extended_location: Optional["_models.ExtendedLocation"] = None, + recovery_extended_location: Optional["_models.ExtendedLocation"] = None, + lifecycle_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword multi_vm_group_id: The multi vm group Id. + :paramtype multi_vm_group_id: str + :keyword multi_vm_group_name: The multi vm group name. + :paramtype multi_vm_group_name: str + :keyword multi_vm_group_create_option: Whether Multi VM group is auto created or specified by + user. Known values are: "AutoCreated" and "UserSpecified". + :paramtype multi_vm_group_create_option: str or + ~azure.mgmt.recoveryservicessiterecovery.models.MultiVmGroupCreateOption + :keyword primary_fabric_location: Primary fabric location. + :paramtype primary_fabric_location: str + :keyword recovery_fabric_location: The recovery fabric location. + :paramtype recovery_fabric_location: str + :keyword failover_recovery_point_id: The recovery point Id to which the cluster was failed + over. + :paramtype failover_recovery_point_id: str + :keyword cluster_management_id: The cluster management Id. + :paramtype cluster_management_id: str + :keyword rpo_in_seconds: The last RPO value in seconds. + :paramtype rpo_in_seconds: int + :keyword last_rpo_calculated_time: The time (in UTC) when the last RPO value was calculated by + Protection Service. + :paramtype last_rpo_calculated_time: ~datetime.datetime + :keyword initial_primary_zone: The initial primary availability zone. + :paramtype initial_primary_zone: str + :keyword initial_primary_fabric_location: The initial primary fabric location. + :paramtype initial_primary_fabric_location: str + :keyword initial_recovery_zone: The initial recovery availability zone. + :paramtype initial_recovery_zone: str + :keyword initial_recovery_fabric_location: The initial recovery fabric location. + :paramtype initial_recovery_fabric_location: str + :keyword initial_primary_extended_location: The initial primary extended location. + :paramtype initial_primary_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :keyword initial_recovery_extended_location: The initial recovery extended location. + :paramtype initial_recovery_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :keyword primary_availability_zone: The primary availability zone. + :paramtype primary_availability_zone: str + :keyword recovery_availability_zone: The recovery availability zone. + :paramtype recovery_availability_zone: str + :keyword primary_extended_location: The primary Extended Location. + :paramtype primary_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :keyword recovery_extended_location: The recovery Extended Location. + :paramtype recovery_extended_location: + ~azure.mgmt.recoveryservicessiterecovery.models.ExtendedLocation + :keyword lifecycle_id: An id that survives actions like switch protection which change the + backing PE/CPE objects internally.The lifecycle id gets carried forward to have a + link/continuity in being able to have an Id that denotes the "same" protected cluster even + though other internal Ids/ARM Id might be changing. + :paramtype lifecycle_id: str + """ super().__init__(**kwargs) self.instance_type: str = "A2A" - self.recovery_container_id = recovery_container_id - self.vm_disks = vm_disks - self.recovery_resource_group_id = recovery_resource_group_id - self.recovery_cloud_service_id = recovery_cloud_service_id - self.recovery_availability_set_id = recovery_availability_set_id - self.policy_id = policy_id + self.multi_vm_group_id = multi_vm_group_id + self.multi_vm_group_name = multi_vm_group_name + self.multi_vm_group_create_option = multi_vm_group_create_option + self.primary_fabric_location = primary_fabric_location + self.recovery_fabric_location = recovery_fabric_location + self.failover_recovery_point_id = failover_recovery_point_id + self.cluster_management_id = cluster_management_id + self.rpo_in_seconds = rpo_in_seconds + self.last_rpo_calculated_time = last_rpo_calculated_time + self.initial_primary_zone = initial_primary_zone + self.initial_primary_fabric_location = initial_primary_fabric_location + self.initial_recovery_zone = initial_recovery_zone + self.initial_recovery_fabric_location = initial_recovery_fabric_location + self.initial_primary_extended_location = initial_primary_extended_location + self.initial_recovery_extended_location = initial_recovery_extended_location + self.primary_availability_zone = primary_availability_zone + self.recovery_availability_zone = recovery_availability_zone + self.primary_extended_location = primary_extended_location + self.recovery_extended_location = recovery_extended_location + self.lifecycle_id = lifecycle_id -class SwitchProtectionProviderSpecificInput(_serialization.Model): - """Provider specific switch protection input. +class ReverseReplicationProviderSpecificInput(_serialization.Model): + """Provider specific reverse replication input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2ASwitchProtectionInput + A2AReprotectInput, HyperVReplicaAzureReprotectInput, InMageReprotectInput, + InMageAzureV2ReprotectInput, InMageRcmReprotectInput, InMageRcmFailbackReprotectInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the Instance type. Required. + :ivar instance_type: The class type. Required. :vartype instance_type: str """ @@ -3153,7 +3644,16 @@ class SwitchProtectionProviderSpecificInput(_serialization.Model): "instance_type": {"key": "instanceType", "type": "str"}, } - _subtype_map = {"instance_type": {"A2A": "A2ASwitchProtectionInput"}} + _subtype_map = { + "instance_type": { + "A2A": "A2AReprotectInput", + "HyperVReplicaAzure": "HyperVReplicaAzureReprotectInput", + "InMage": "InMageReprotectInput", + "InMageAzureV2": "InMageAzureV2ReprotectInput", + "InMageRcm": "InMageRcmReprotectInput", + "InMageRcmFailback": "InMageRcmFailbackReprotectInput", + } + } def __init__(self, **kwargs: Any) -> None: """ """ @@ -3161,20 +3661,17 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2ASwitchProtectionInput(SwitchProtectionProviderSpecificInput): # pylint: disable=too-many-instance-attributes - """A2A specific switch protection input. +class A2AReprotectInput(ReverseReplicationProviderSpecificInput): + """Azure specific reprotect input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the Instance type. Required. + :ivar instance_type: The class type. Required. :vartype instance_type: str :ivar recovery_container_id: The recovery container Id. :vartype recovery_container_id: str :ivar vm_disks: The list of vm disk details. :vartype vm_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmDiskInputDetails] - :ivar vm_managed_disks: The list of vm managed disk details. - :vartype vm_managed_disks: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskInputDetails] :ivar recovery_resource_group_id: The recovery resource group Id. Valid for V2 scenarios. :vartype recovery_resource_group_id: str :ivar recovery_cloud_service_id: The recovery cloud service Id. Valid for V1 scenarios. @@ -3183,19 +3680,6 @@ class A2ASwitchProtectionInput(SwitchProtectionProviderSpecificInput): # pylint :vartype recovery_availability_set_id: str :ivar policy_id: The Policy Id. :vartype policy_id: str - :ivar recovery_boot_diag_storage_account_id: The boot diagnostic storage account. - :vartype recovery_boot_diag_storage_account_id: str - :ivar recovery_availability_zone: The recovery availability zone. - :vartype recovery_availability_zone: str - :ivar recovery_proximity_placement_group_id: The recovery proximity placement group Id. - :vartype recovery_proximity_placement_group_id: str - :ivar recovery_virtual_machine_scale_set_id: The virtual machine scale set id. - :vartype recovery_virtual_machine_scale_set_id: str - :ivar recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. - :vartype recovery_capacity_reservation_group_id: str - :ivar disk_encryption_info: The recovery disk encryption information. - :vartype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo """ _validation = { @@ -3206,17 +3690,10 @@ class A2ASwitchProtectionInput(SwitchProtectionProviderSpecificInput): # pylint "instance_type": {"key": "instanceType", "type": "str"}, "recovery_container_id": {"key": "recoveryContainerId", "type": "str"}, "vm_disks": {"key": "vmDisks", "type": "[A2AVmDiskInputDetails]"}, - "vm_managed_disks": {"key": "vmManagedDisks", "type": "[A2AVmManagedDiskInputDetails]"}, "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, "recovery_cloud_service_id": {"key": "recoveryCloudServiceId", "type": "str"}, "recovery_availability_set_id": {"key": "recoveryAvailabilitySetId", "type": "str"}, "policy_id": {"key": "policyId", "type": "str"}, - "recovery_boot_diag_storage_account_id": {"key": "recoveryBootDiagStorageAccountId", "type": "str"}, - "recovery_availability_zone": {"key": "recoveryAvailabilityZone", "type": "str"}, - "recovery_proximity_placement_group_id": {"key": "recoveryProximityPlacementGroupId", "type": "str"}, - "recovery_virtual_machine_scale_set_id": {"key": "recoveryVirtualMachineScaleSetId", "type": "str"}, - "recovery_capacity_reservation_group_id": {"key": "recoveryCapacityReservationGroupId", "type": "str"}, - "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, } def __init__( @@ -3224,17 +3701,10 @@ def __init__( *, recovery_container_id: Optional[str] = None, vm_disks: Optional[List["_models.A2AVmDiskInputDetails"]] = None, - vm_managed_disks: Optional[List["_models.A2AVmManagedDiskInputDetails"]] = None, recovery_resource_group_id: Optional[str] = None, recovery_cloud_service_id: Optional[str] = None, recovery_availability_set_id: Optional[str] = None, policy_id: Optional[str] = None, - recovery_boot_diag_storage_account_id: Optional[str] = None, - recovery_availability_zone: Optional[str] = None, - recovery_proximity_placement_group_id: Optional[str] = None, - recovery_virtual_machine_scale_set_id: Optional[str] = None, - recovery_capacity_reservation_group_id: Optional[str] = None, - disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, **kwargs: Any ) -> None: """ @@ -3243,9 +3713,6 @@ def __init__( :keyword vm_disks: The list of vm disk details. :paramtype vm_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmDiskInputDetails] - :keyword vm_managed_disks: The list of vm managed disk details. - :paramtype vm_managed_disks: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskInputDetails] :keyword recovery_resource_group_id: The recovery resource group Id. Valid for V2 scenarios. :paramtype recovery_resource_group_id: str :keyword recovery_cloud_service_id: The recovery cloud service Id. Valid for V1 scenarios. @@ -3254,87 +3721,70 @@ def __init__( :paramtype recovery_availability_set_id: str :keyword policy_id: The Policy Id. :paramtype policy_id: str - :keyword recovery_boot_diag_storage_account_id: The boot diagnostic storage account. - :paramtype recovery_boot_diag_storage_account_id: str - :keyword recovery_availability_zone: The recovery availability zone. - :paramtype recovery_availability_zone: str - :keyword recovery_proximity_placement_group_id: The recovery proximity placement group Id. - :paramtype recovery_proximity_placement_group_id: str - :keyword recovery_virtual_machine_scale_set_id: The virtual machine scale set id. - :paramtype recovery_virtual_machine_scale_set_id: str - :keyword recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. - :paramtype recovery_capacity_reservation_group_id: str - :keyword disk_encryption_info: The recovery disk encryption information. - :paramtype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo """ super().__init__(**kwargs) self.instance_type: str = "A2A" self.recovery_container_id = recovery_container_id self.vm_disks = vm_disks - self.vm_managed_disks = vm_managed_disks self.recovery_resource_group_id = recovery_resource_group_id self.recovery_cloud_service_id = recovery_cloud_service_id self.recovery_availability_set_id = recovery_availability_set_id self.policy_id = policy_id - self.recovery_boot_diag_storage_account_id = recovery_boot_diag_storage_account_id - self.recovery_availability_zone = recovery_availability_zone - self.recovery_proximity_placement_group_id = recovery_proximity_placement_group_id - self.recovery_virtual_machine_scale_set_id = recovery_virtual_machine_scale_set_id - self.recovery_capacity_reservation_group_id = recovery_capacity_reservation_group_id - self.disk_encryption_info = disk_encryption_info - -class TestFailoverProviderSpecificInput(_serialization.Model): - """Provider specific test failover input. - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2ATestFailoverInput, HyperVReplicaAzureTestFailoverInput, InMageTestFailoverInput, - InMageAzureV2TestFailoverInput, InMageRcmTestFailoverInput +class A2ASharedDiskIRErrorDetails(_serialization.Model): + """Extended location of the resource. - All required parameters must be populated in order to send to Azure. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar instance_type: The class type. Required. - :vartype instance_type: str + :ivar error_code: The error code. + :vartype error_code: str + :ivar error_code_enum: The error code enum. + :vartype error_code_enum: str + :ivar error_message: The error message. + :vartype error_message: str + :ivar possible_causes: The possible causes. + :vartype possible_causes: str + :ivar recommended_action: The recommended action. + :vartype recommended_action: str """ _validation = { - "instance_type": {"required": True}, + "error_code": {"readonly": True}, + "error_code_enum": {"readonly": True}, + "error_message": {"readonly": True}, + "possible_causes": {"readonly": True}, + "recommended_action": {"readonly": True}, } _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, - } - - _subtype_map = { - "instance_type": { - "A2A": "A2ATestFailoverInput", - "HyperVReplicaAzure": "HyperVReplicaAzureTestFailoverInput", - "InMage": "InMageTestFailoverInput", - "InMageAzureV2": "InMageAzureV2TestFailoverInput", - "InMageRcm": "InMageRcmTestFailoverInput", - } + "error_code": {"key": "errorCode", "type": "str"}, + "error_code_enum": {"key": "errorCodeEnum", "type": "str"}, + "error_message": {"key": "errorMessage", "type": "str"}, + "possible_causes": {"key": "possibleCauses", "type": "str"}, + "recommended_action": {"key": "recommendedAction", "type": "str"}, } def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.instance_type: Optional[str] = None + self.error_code: Optional[str] = None + self.error_code_enum: Optional[str] = None + self.error_message: Optional[str] = None + self.possible_causes: Optional[str] = None + self.recommended_action: Optional[str] = None -class A2ATestFailoverInput(TestFailoverProviderSpecificInput): - """A2A provider specific input for test failover. +class SharedDiskReplicationProviderSpecificSettings(_serialization.Model): # pylint: disable=name-too-long + """Replication provider specific settings. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2ASharedDiskReplicationDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str - :ivar recovery_point_id: The recovery point id to be passed to test failover to a particular - recovery point. In case of latest recovery point, null should be passed. - :vartype recovery_point_id: str - :ivar cloud_service_creation_option: A value indicating whether to use recovery cloud service - for TFO or not. - :vartype cloud_service_creation_option: str """ _validation = { @@ -3343,43 +3793,52 @@ class A2ATestFailoverInput(TestFailoverProviderSpecificInput): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, - "cloud_service_creation_option": {"key": "cloudServiceCreationOption", "type": "str"}, } - def __init__( - self, - *, - recovery_point_id: Optional[str] = None, - cloud_service_creation_option: Optional[str] = None, - **kwargs: Any - ) -> None: - """ - :keyword recovery_point_id: The recovery point id to be passed to test failover to a particular - recovery point. In case of latest recovery point, null should be passed. - :paramtype recovery_point_id: str - :keyword cloud_service_creation_option: A value indicating whether to use recovery cloud - service for TFO or not. - :paramtype cloud_service_creation_option: str - """ - super().__init__(**kwargs) - self.instance_type: str = "A2A" - self.recovery_point_id = recovery_point_id - self.cloud_service_creation_option = cloud_service_creation_option + _subtype_map = {"instance_type": {"A2A": "A2ASharedDiskReplicationDetails"}} + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None -class UnplannedFailoverProviderSpecificInput(_serialization.Model): - """Provider specific unplanned failover input. - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2AUnplannedFailoverInput, HyperVReplicaAzureUnplannedFailoverInput, - InMageUnplannedFailoverInput, InMageAzureV2UnplannedFailoverInput, - InMageRcmUnplannedFailoverInput +class A2ASharedDiskReplicationDetails(SharedDiskReplicationProviderSpecificSettings): + """A2A provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str + :ivar management_id: The management Id. + :vartype management_id: str + :ivar unprotected_disks: The list of unprotected disks. + :vartype unprotected_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AUnprotectedDiskDetails] + :ivar protected_managed_disks: The list of protected managed disks. + :vartype protected_managed_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AProtectedManagedDiskDetails] + :ivar primary_fabric_location: Primary fabric location. + :vartype primary_fabric_location: str + :ivar recovery_fabric_location: The recovery fabric location. + :vartype recovery_fabric_location: str + :ivar failover_recovery_point_id: The recovery point id to which the Virtual node was failed + over. + :vartype failover_recovery_point_id: str + :ivar monitoring_percentage_completion: The percentage of the monitoring job. The type of the + monitoring job is defined by MonitoringJobType property. + :vartype monitoring_percentage_completion: int + :ivar monitoring_job_type: The type of the monitoring job. The progress is contained in + MonitoringPercentageCompletion property. + :vartype monitoring_job_type: str + :ivar rpo_in_seconds: The last RPO value in seconds. + :vartype rpo_in_seconds: int + :ivar last_rpo_calculated_time: The time (in UTC) when the last RPO value was calculated by + Protection Service. + :vartype last_rpo_calculated_time: ~datetime.datetime + :ivar shared_disk_ir_errors: The IR Errors. + :vartype shared_disk_ir_errors: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2ASharedDiskIRErrorDetails] """ _validation = { @@ -3388,115 +3847,90 @@ class UnplannedFailoverProviderSpecificInput(_serialization.Model): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - } - - _subtype_map = { - "instance_type": { - "A2A": "A2AUnplannedFailoverInput", - "HyperVReplicaAzure": "HyperVReplicaAzureUnplannedFailoverInput", - "InMage": "InMageUnplannedFailoverInput", - "InMageAzureV2": "InMageAzureV2UnplannedFailoverInput", - "InMageRcm": "InMageRcmUnplannedFailoverInput", - } - } - - def __init__(self, **kwargs: Any) -> None: - """ """ - super().__init__(**kwargs) - self.instance_type: Optional[str] = None - - -class A2AUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): - """A2A provider specific input for unplanned failover. - - All required parameters must be populated in order to send to Azure. - - :ivar instance_type: The class type. Required. - :vartype instance_type: str - :ivar recovery_point_id: The recovery point id to be passed to failover to a particular - recovery point. In case of latest recovery point, null should be passed. - :vartype recovery_point_id: str - :ivar cloud_service_creation_option: A value indicating whether to use recovery cloud service - for failover or not. - :vartype cloud_service_creation_option: str - """ - - _validation = { - "instance_type": {"required": True}, - } - - _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, - "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, - "cloud_service_creation_option": {"key": "cloudServiceCreationOption", "type": "str"}, + "management_id": {"key": "managementId", "type": "str"}, + "unprotected_disks": {"key": "unprotectedDisks", "type": "[A2AUnprotectedDiskDetails]"}, + "protected_managed_disks": {"key": "protectedManagedDisks", "type": "[A2AProtectedManagedDiskDetails]"}, + "primary_fabric_location": {"key": "primaryFabricLocation", "type": "str"}, + "recovery_fabric_location": {"key": "recoveryFabricLocation", "type": "str"}, + "failover_recovery_point_id": {"key": "failoverRecoveryPointId", "type": "str"}, + "monitoring_percentage_completion": {"key": "monitoringPercentageCompletion", "type": "int"}, + "monitoring_job_type": {"key": "monitoringJobType", "type": "str"}, + "rpo_in_seconds": {"key": "rpoInSeconds", "type": "int"}, + "last_rpo_calculated_time": {"key": "lastRpoCalculatedTime", "type": "iso-8601"}, + "shared_disk_ir_errors": {"key": "sharedDiskIRErrors", "type": "[A2ASharedDiskIRErrorDetails]"}, } def __init__( self, *, - recovery_point_id: Optional[str] = None, - cloud_service_creation_option: Optional[str] = None, + management_id: Optional[str] = None, + unprotected_disks: Optional[List["_models.A2AUnprotectedDiskDetails"]] = None, + protected_managed_disks: Optional[List["_models.A2AProtectedManagedDiskDetails"]] = None, + primary_fabric_location: Optional[str] = None, + recovery_fabric_location: Optional[str] = None, + failover_recovery_point_id: Optional[str] = None, + monitoring_percentage_completion: Optional[int] = None, + monitoring_job_type: Optional[str] = None, + rpo_in_seconds: Optional[int] = None, + last_rpo_calculated_time: Optional[datetime.datetime] = None, + shared_disk_ir_errors: Optional[List["_models.A2ASharedDiskIRErrorDetails"]] = None, **kwargs: Any ) -> None: """ - :keyword recovery_point_id: The recovery point id to be passed to failover to a particular - recovery point. In case of latest recovery point, null should be passed. - :paramtype recovery_point_id: str - :keyword cloud_service_creation_option: A value indicating whether to use recovery cloud - service for failover or not. - :paramtype cloud_service_creation_option: str + :keyword management_id: The management Id. + :paramtype management_id: str + :keyword unprotected_disks: The list of unprotected disks. + :paramtype unprotected_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AUnprotectedDiskDetails] + :keyword protected_managed_disks: The list of protected managed disks. + :paramtype protected_managed_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AProtectedManagedDiskDetails] + :keyword primary_fabric_location: Primary fabric location. + :paramtype primary_fabric_location: str + :keyword recovery_fabric_location: The recovery fabric location. + :paramtype recovery_fabric_location: str + :keyword failover_recovery_point_id: The recovery point id to which the Virtual node was failed + over. + :paramtype failover_recovery_point_id: str + :keyword monitoring_percentage_completion: The percentage of the monitoring job. The type of + the monitoring job is defined by MonitoringJobType property. + :paramtype monitoring_percentage_completion: int + :keyword monitoring_job_type: The type of the monitoring job. The progress is contained in + MonitoringPercentageCompletion property. + :paramtype monitoring_job_type: str + :keyword rpo_in_seconds: The last RPO value in seconds. + :paramtype rpo_in_seconds: int + :keyword last_rpo_calculated_time: The time (in UTC) when the last RPO value was calculated by + Protection Service. + :paramtype last_rpo_calculated_time: ~datetime.datetime + :keyword shared_disk_ir_errors: The IR Errors. + :paramtype shared_disk_ir_errors: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2ASharedDiskIRErrorDetails] """ super().__init__(**kwargs) self.instance_type: str = "A2A" - self.recovery_point_id = recovery_point_id - self.cloud_service_creation_option = cloud_service_creation_option - - -class A2AUnprotectedDiskDetails(_serialization.Model): - """A2A unprotected disk details. - - :ivar disk_lun_id: The source lun Id for the data disk. - :vartype disk_lun_id: int - :ivar disk_auto_protection_status: A value indicating whether the disk auto protection is - enabled. Known values are: "Disabled" and "Enabled". - :vartype disk_auto_protection_status: str or - ~azure.mgmt.recoveryservicessiterecovery.models.AutoProtectionOfDataDisk - """ - - _attribute_map = { - "disk_lun_id": {"key": "diskLunId", "type": "int"}, - "disk_auto_protection_status": {"key": "diskAutoProtectionStatus", "type": "str"}, - } - - def __init__( - self, - *, - disk_lun_id: Optional[int] = None, - disk_auto_protection_status: Optional[Union[str, "_models.AutoProtectionOfDataDisk"]] = None, - **kwargs: Any - ) -> None: - """ - :keyword disk_lun_id: The source lun Id for the data disk. - :paramtype disk_lun_id: int - :keyword disk_auto_protection_status: A value indicating whether the disk auto protection is - enabled. Known values are: "Disabled" and "Enabled". - :paramtype disk_auto_protection_status: str or - ~azure.mgmt.recoveryservicessiterecovery.models.AutoProtectionOfDataDisk - """ - super().__init__(**kwargs) - self.disk_lun_id = disk_lun_id - self.disk_auto_protection_status = disk_auto_protection_status + self.management_id = management_id + self.unprotected_disks = unprotected_disks + self.protected_managed_disks = protected_managed_disks + self.primary_fabric_location = primary_fabric_location + self.recovery_fabric_location = recovery_fabric_location + self.failover_recovery_point_id = failover_recovery_point_id + self.monitoring_percentage_completion = monitoring_percentage_completion + self.monitoring_job_type = monitoring_job_type + self.rpo_in_seconds = rpo_in_seconds + self.last_rpo_calculated_time = last_rpo_calculated_time + self.shared_disk_ir_errors = shared_disk_ir_errors -class ReplicationProviderSpecificUpdateContainerMappingInput(_serialization.Model): - """Provider specific input for update pairing operations. +class SwitchClusterProtectionProviderSpecificInput(_serialization.Model): # pylint: disable=name-too-long + """Provider specific switch cluster protection input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2AUpdateContainerMappingInput, InMageRcmUpdateContainerMappingInput + A2ASwitchClusterProtectionInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str """ @@ -3508,9 +3942,7 @@ class ReplicationProviderSpecificUpdateContainerMappingInput(_serialization.Mode "instance_type": {"key": "instanceType", "type": "str"}, } - _subtype_map = { - "instance_type": {"A2A": "A2AUpdateContainerMappingInput", "InMageRcm": "InMageRcmUpdateContainerMappingInput"} - } + _subtype_map = {"instance_type": {"A2A": "A2ASwitchClusterProtectionInput"}} def __init__(self, **kwargs: Any) -> None: """ """ @@ -3518,23 +3950,20 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2AUpdateContainerMappingInput(ReplicationProviderSpecificUpdateContainerMappingInput): - """A2A update protection container mapping. +class A2ASwitchClusterProtectionInput(SwitchClusterProtectionProviderSpecificInput): + """A2A specific switch cluster protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str - :ivar agent_auto_update_status: A value indicating whether the auto update is enabled. Known - values are: "Disabled" and "Enabled". - :vartype agent_auto_update_status: str or - ~azure.mgmt.recoveryservicessiterecovery.models.AgentAutoUpdateStatus - :ivar automation_account_arm_id: The automation account arm id. - :vartype automation_account_arm_id: str - :ivar automation_account_authentication_type: A value indicating the type authentication to use - for automation Account. Known values are: "RunAsAccount" and "SystemAssignedIdentity". - :vartype automation_account_authentication_type: str or - ~azure.mgmt.recoveryservicessiterecovery.models.AutomationAccountAuthenticationType + :ivar recovery_container_id: The recovery container Id. + :vartype recovery_container_id: str + :ivar policy_id: The Policy Id. + :vartype policy_id: str + :ivar protected_items_detail: + :vartype protected_items_detail: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AProtectedItemDetail] """ _validation = { @@ -3543,50 +3972,44 @@ class A2AUpdateContainerMappingInput(ReplicationProviderSpecificUpdateContainerM _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "agent_auto_update_status": {"key": "agentAutoUpdateStatus", "type": "str"}, - "automation_account_arm_id": {"key": "automationAccountArmId", "type": "str"}, - "automation_account_authentication_type": {"key": "automationAccountAuthenticationType", "type": "str"}, + "recovery_container_id": {"key": "recoveryContainerId", "type": "str"}, + "policy_id": {"key": "policyId", "type": "str"}, + "protected_items_detail": {"key": "protectedItemsDetail", "type": "[A2AProtectedItemDetail]"}, } def __init__( self, *, - agent_auto_update_status: Optional[Union[str, "_models.AgentAutoUpdateStatus"]] = None, - automation_account_arm_id: Optional[str] = None, - automation_account_authentication_type: Optional[ - Union[str, "_models.AutomationAccountAuthenticationType"] - ] = None, + recovery_container_id: Optional[str] = None, + policy_id: Optional[str] = None, + protected_items_detail: Optional[List["_models.A2AProtectedItemDetail"]] = None, **kwargs: Any ) -> None: """ - :keyword agent_auto_update_status: A value indicating whether the auto update is enabled. Known - values are: "Disabled" and "Enabled". - :paramtype agent_auto_update_status: str or - ~azure.mgmt.recoveryservicessiterecovery.models.AgentAutoUpdateStatus - :keyword automation_account_arm_id: The automation account arm id. - :paramtype automation_account_arm_id: str - :keyword automation_account_authentication_type: A value indicating the type authentication to - use for automation Account. Known values are: "RunAsAccount" and "SystemAssignedIdentity". - :paramtype automation_account_authentication_type: str or - ~azure.mgmt.recoveryservicessiterecovery.models.AutomationAccountAuthenticationType + :keyword recovery_container_id: The recovery container Id. + :paramtype recovery_container_id: str + :keyword policy_id: The Policy Id. + :paramtype policy_id: str + :keyword protected_items_detail: + :paramtype protected_items_detail: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AProtectedItemDetail] """ super().__init__(**kwargs) self.instance_type: str = "A2A" - self.agent_auto_update_status = agent_auto_update_status - self.automation_account_arm_id = automation_account_arm_id - self.automation_account_authentication_type = automation_account_authentication_type + self.recovery_container_id = recovery_container_id + self.policy_id = policy_id + self.protected_items_detail = protected_items_detail -class UpdateReplicationProtectedItemProviderInput(_serialization.Model): - """Update replication protected item provider specific input. +class SwitchProtectionProviderSpecificInput(_serialization.Model): + """Provider specific switch protection input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - A2AUpdateReplicationProtectedItemInput, HyperVReplicaAzureUpdateReplicationProtectedItemInput, - InMageAzureV2UpdateReplicationProtectedItemInput, InMageRcmUpdateReplicationProtectedItemInput + A2ASwitchProtectionInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str """ @@ -3598,14 +4021,7 @@ class UpdateReplicationProtectedItemProviderInput(_serialization.Model): "instance_type": {"key": "instanceType", "type": "str"}, } - _subtype_map = { - "instance_type": { - "A2A": "A2AUpdateReplicationProtectedItemInput", - "HyperVReplicaAzure": "HyperVReplicaAzureUpdateReplicationProtectedItemInput", - "InMageAzureV2": "InMageAzureV2UpdateReplicationProtectedItemInput", - "InMageRcm": "InMageRcmUpdateReplicationProtectedItemInput", - } - } + _subtype_map = {"instance_type": {"A2A": "A2ASwitchProtectionInput"}} def __init__(self, **kwargs: Any) -> None: """ """ @@ -3613,33 +4029,41 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class A2AUpdateReplicationProtectedItemInput(UpdateReplicationProtectedItemProviderInput): - """InMage Azure V2 input to update replication protected item. +class A2ASwitchProtectionInput(SwitchProtectionProviderSpecificInput): + """A2A specific switch protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The class type. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str - :ivar recovery_cloud_service_id: The target cloud service ARM Id (for V1). - :vartype recovery_cloud_service_id: str - :ivar recovery_resource_group_id: The target resource group ARM Id (for V2). + :ivar recovery_container_id: The recovery container Id. + :vartype recovery_container_id: str + :ivar vm_disks: The list of vm disk details. + :vartype vm_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmDiskInputDetails] + :ivar vm_managed_disks: The list of vm managed disk details. + :vartype vm_managed_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskInputDetails] + :ivar recovery_resource_group_id: The recovery resource group Id. Valid for V2 scenarios. :vartype recovery_resource_group_id: str - :ivar managed_disk_update_details: Managed disk update details. - :vartype managed_disk_update_details: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskUpdateDetails] - :ivar recovery_boot_diag_storage_account_id: The boot diagnostic storage account. - :vartype recovery_boot_diag_storage_account_id: str - :ivar disk_encryption_info: The recovery os disk encryption information. - :vartype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo - :ivar tfo_azure_vm_name: The user given name for Test Failover VM. - :vartype tfo_azure_vm_name: str + :ivar recovery_cloud_service_id: The recovery cloud service Id. Valid for V1 scenarios. + :vartype recovery_cloud_service_id: str + :ivar recovery_availability_set_id: The recovery availability set. + :vartype recovery_availability_set_id: str + :ivar policy_id: The Policy Id. + :vartype policy_id: str + :ivar recovery_boot_diag_storage_account_id: The boot diagnostic storage account. + :vartype recovery_boot_diag_storage_account_id: str + :ivar recovery_availability_zone: The recovery availability zone. + :vartype recovery_availability_zone: str :ivar recovery_proximity_placement_group_id: The recovery proximity placement group Id. :vartype recovery_proximity_placement_group_id: str - :ivar recovery_virtual_machine_scale_set_id: The recovery virtual machine scale set Id. + :ivar recovery_virtual_machine_scale_set_id: The virtual machine scale set id. :vartype recovery_virtual_machine_scale_set_id: str :ivar recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. :vartype recovery_capacity_reservation_group_id: str + :ivar disk_encryption_info: The recovery disk encryption information. + :vartype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo """ _validation = { @@ -3648,918 +4072,1790 @@ class A2AUpdateReplicationProtectedItemInput(UpdateReplicationProtectedItemProvi _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "recovery_cloud_service_id": {"key": "recoveryCloudServiceId", "type": "str"}, + "recovery_container_id": {"key": "recoveryContainerId", "type": "str"}, + "vm_disks": {"key": "vmDisks", "type": "[A2AVmDiskInputDetails]"}, + "vm_managed_disks": {"key": "vmManagedDisks", "type": "[A2AVmManagedDiskInputDetails]"}, "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, - "managed_disk_update_details": {"key": "managedDiskUpdateDetails", "type": "[A2AVmManagedDiskUpdateDetails]"}, + "recovery_cloud_service_id": {"key": "recoveryCloudServiceId", "type": "str"}, + "recovery_availability_set_id": {"key": "recoveryAvailabilitySetId", "type": "str"}, + "policy_id": {"key": "policyId", "type": "str"}, "recovery_boot_diag_storage_account_id": {"key": "recoveryBootDiagStorageAccountId", "type": "str"}, - "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, - "tfo_azure_vm_name": {"key": "tfoAzureVMName", "type": "str"}, + "recovery_availability_zone": {"key": "recoveryAvailabilityZone", "type": "str"}, "recovery_proximity_placement_group_id": {"key": "recoveryProximityPlacementGroupId", "type": "str"}, "recovery_virtual_machine_scale_set_id": {"key": "recoveryVirtualMachineScaleSetId", "type": "str"}, "recovery_capacity_reservation_group_id": {"key": "recoveryCapacityReservationGroupId", "type": "str"}, + "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, } def __init__( self, *, - recovery_cloud_service_id: Optional[str] = None, + recovery_container_id: Optional[str] = None, + vm_disks: Optional[List["_models.A2AVmDiskInputDetails"]] = None, + vm_managed_disks: Optional[List["_models.A2AVmManagedDiskInputDetails"]] = None, recovery_resource_group_id: Optional[str] = None, - managed_disk_update_details: Optional[List["_models.A2AVmManagedDiskUpdateDetails"]] = None, + recovery_cloud_service_id: Optional[str] = None, + recovery_availability_set_id: Optional[str] = None, + policy_id: Optional[str] = None, recovery_boot_diag_storage_account_id: Optional[str] = None, - disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, - tfo_azure_vm_name: Optional[str] = None, + recovery_availability_zone: Optional[str] = None, recovery_proximity_placement_group_id: Optional[str] = None, recovery_virtual_machine_scale_set_id: Optional[str] = None, recovery_capacity_reservation_group_id: Optional[str] = None, + disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, **kwargs: Any ) -> None: """ - :keyword recovery_cloud_service_id: The target cloud service ARM Id (for V1). - :paramtype recovery_cloud_service_id: str - :keyword recovery_resource_group_id: The target resource group ARM Id (for V2). + :keyword recovery_container_id: The recovery container Id. + :paramtype recovery_container_id: str + :keyword vm_disks: The list of vm disk details. + :paramtype vm_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmDiskInputDetails] + :keyword vm_managed_disks: The list of vm managed disk details. + :paramtype vm_managed_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskInputDetails] + :keyword recovery_resource_group_id: The recovery resource group Id. Valid for V2 scenarios. :paramtype recovery_resource_group_id: str - :keyword managed_disk_update_details: Managed disk update details. - :paramtype managed_disk_update_details: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskUpdateDetails] + :keyword recovery_cloud_service_id: The recovery cloud service Id. Valid for V1 scenarios. + :paramtype recovery_cloud_service_id: str + :keyword recovery_availability_set_id: The recovery availability set. + :paramtype recovery_availability_set_id: str + :keyword policy_id: The Policy Id. + :paramtype policy_id: str :keyword recovery_boot_diag_storage_account_id: The boot diagnostic storage account. :paramtype recovery_boot_diag_storage_account_id: str - :keyword disk_encryption_info: The recovery os disk encryption information. - :paramtype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo - :keyword tfo_azure_vm_name: The user given name for Test Failover VM. - :paramtype tfo_azure_vm_name: str + :keyword recovery_availability_zone: The recovery availability zone. + :paramtype recovery_availability_zone: str :keyword recovery_proximity_placement_group_id: The recovery proximity placement group Id. :paramtype recovery_proximity_placement_group_id: str - :keyword recovery_virtual_machine_scale_set_id: The recovery virtual machine scale set Id. + :keyword recovery_virtual_machine_scale_set_id: The virtual machine scale set id. :paramtype recovery_virtual_machine_scale_set_id: str :keyword recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. :paramtype recovery_capacity_reservation_group_id: str + :keyword disk_encryption_info: The recovery disk encryption information. + :paramtype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo """ super().__init__(**kwargs) self.instance_type: str = "A2A" - self.recovery_cloud_service_id = recovery_cloud_service_id + self.recovery_container_id = recovery_container_id + self.vm_disks = vm_disks + self.vm_managed_disks = vm_managed_disks self.recovery_resource_group_id = recovery_resource_group_id - self.managed_disk_update_details = managed_disk_update_details + self.recovery_cloud_service_id = recovery_cloud_service_id + self.recovery_availability_set_id = recovery_availability_set_id + self.policy_id = policy_id self.recovery_boot_diag_storage_account_id = recovery_boot_diag_storage_account_id - self.disk_encryption_info = disk_encryption_info - self.tfo_azure_vm_name = tfo_azure_vm_name + self.recovery_availability_zone = recovery_availability_zone self.recovery_proximity_placement_group_id = recovery_proximity_placement_group_id self.recovery_virtual_machine_scale_set_id = recovery_virtual_machine_scale_set_id self.recovery_capacity_reservation_group_id = recovery_capacity_reservation_group_id + self.disk_encryption_info = disk_encryption_info -class A2AVmDiskInputDetails(_serialization.Model): - """A2A disk input details. +class TestFailoverProviderSpecificInput(_serialization.Model): + """Provider specific test failover input. - All required parameters must be populated in order to send to Azure. + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2ATestFailoverInput, HyperVReplicaAzureTestFailoverInput, InMageTestFailoverInput, + InMageAzureV2TestFailoverInput, InMageRcmTestFailoverInput - :ivar disk_uri: The disk Uri. Required. - :vartype disk_uri: str - :ivar recovery_azure_storage_account_id: The recovery VHD storage account Id. Required. - :vartype recovery_azure_storage_account_id: str - :ivar primary_staging_azure_storage_account_id: The primary staging storage account Id. - Required. - :vartype primary_staging_azure_storage_account_id: str + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str """ _validation = { - "disk_uri": {"required": True}, - "recovery_azure_storage_account_id": {"required": True}, - "primary_staging_azure_storage_account_id": {"required": True}, + "instance_type": {"required": True}, } _attribute_map = { - "disk_uri": {"key": "diskUri", "type": "str"}, - "recovery_azure_storage_account_id": {"key": "recoveryAzureStorageAccountId", "type": "str"}, - "primary_staging_azure_storage_account_id": {"key": "primaryStagingAzureStorageAccountId", "type": "str"}, + "instance_type": {"key": "instanceType", "type": "str"}, } - def __init__( - self, - *, - disk_uri: str, - recovery_azure_storage_account_id: str, - primary_staging_azure_storage_account_id: str, - **kwargs: Any - ) -> None: - """ - :keyword disk_uri: The disk Uri. Required. - :paramtype disk_uri: str - :keyword recovery_azure_storage_account_id: The recovery VHD storage account Id. Required. - :paramtype recovery_azure_storage_account_id: str - :keyword primary_staging_azure_storage_account_id: The primary staging storage account Id. - Required. - :paramtype primary_staging_azure_storage_account_id: str - """ + _subtype_map = { + "instance_type": { + "A2A": "A2ATestFailoverInput", + "HyperVReplicaAzure": "HyperVReplicaAzureTestFailoverInput", + "InMage": "InMageTestFailoverInput", + "InMageAzureV2": "InMageAzureV2TestFailoverInput", + "InMageRcm": "InMageRcmTestFailoverInput", + } + } + + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) - self.disk_uri = disk_uri - self.recovery_azure_storage_account_id = recovery_azure_storage_account_id - self.primary_staging_azure_storage_account_id = primary_staging_azure_storage_account_id + self.instance_type: Optional[str] = None -class A2AVmManagedDiskInputDetails(_serialization.Model): - """A2A managed disk input details. +class A2ATestFailoverInput(TestFailoverProviderSpecificInput): + """A2A provider specific input for test failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar disk_id: The disk Id. Required. - :vartype disk_id: str - :ivar primary_staging_azure_storage_account_id: The primary staging storage account Arm Id. - Required. - :vartype primary_staging_azure_storage_account_id: str - :ivar recovery_resource_group_id: The target resource group Arm Id. Required. - :vartype recovery_resource_group_id: str - :ivar recovery_replica_disk_account_type: The replica disk type. Its an optional value and will - be same as source disk type if not user provided. - :vartype recovery_replica_disk_account_type: str - :ivar recovery_target_disk_account_type: The target disk type after failover. Its an optional - value and will be same as source disk type if not user provided. - :vartype recovery_target_disk_account_type: str - :ivar recovery_disk_encryption_set_id: The recovery disk encryption set Id. - :vartype recovery_disk_encryption_set_id: str - :ivar disk_encryption_info: The recovery disk encryption information (for one / single pass - flows). - :vartype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar recovery_point_id: The recovery point id to be passed to test failover to a particular + recovery point. In case of latest recovery point, null should be passed. + :vartype recovery_point_id: str + :ivar cloud_service_creation_option: A value indicating whether to use recovery cloud service + for TFO or not. + :vartype cloud_service_creation_option: str """ _validation = { - "disk_id": {"required": True}, - "primary_staging_azure_storage_account_id": {"required": True}, - "recovery_resource_group_id": {"required": True}, + "instance_type": {"required": True}, } _attribute_map = { - "disk_id": {"key": "diskId", "type": "str"}, - "primary_staging_azure_storage_account_id": {"key": "primaryStagingAzureStorageAccountId", "type": "str"}, - "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, - "recovery_replica_disk_account_type": {"key": "recoveryReplicaDiskAccountType", "type": "str"}, - "recovery_target_disk_account_type": {"key": "recoveryTargetDiskAccountType", "type": "str"}, - "recovery_disk_encryption_set_id": {"key": "recoveryDiskEncryptionSetId", "type": "str"}, - "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, + "instance_type": {"key": "instanceType", "type": "str"}, + "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, + "cloud_service_creation_option": {"key": "cloudServiceCreationOption", "type": "str"}, } def __init__( self, *, - disk_id: str, - primary_staging_azure_storage_account_id: str, - recovery_resource_group_id: str, - recovery_replica_disk_account_type: Optional[str] = None, - recovery_target_disk_account_type: Optional[str] = None, - recovery_disk_encryption_set_id: Optional[str] = None, - disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, + recovery_point_id: Optional[str] = None, + cloud_service_creation_option: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword disk_id: The disk Id. Required. - :paramtype disk_id: str - :keyword primary_staging_azure_storage_account_id: The primary staging storage account Arm Id. - Required. - :paramtype primary_staging_azure_storage_account_id: str - :keyword recovery_resource_group_id: The target resource group Arm Id. Required. - :paramtype recovery_resource_group_id: str - :keyword recovery_replica_disk_account_type: The replica disk type. Its an optional value and - will be same as source disk type if not user provided. - :paramtype recovery_replica_disk_account_type: str - :keyword recovery_target_disk_account_type: The target disk type after failover. Its an - optional value and will be same as source disk type if not user provided. - :paramtype recovery_target_disk_account_type: str - :keyword recovery_disk_encryption_set_id: The recovery disk encryption set Id. - :paramtype recovery_disk_encryption_set_id: str - :keyword disk_encryption_info: The recovery disk encryption information (for one / single pass - flows). - :paramtype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :keyword recovery_point_id: The recovery point id to be passed to test failover to a particular + recovery point. In case of latest recovery point, null should be passed. + :paramtype recovery_point_id: str + :keyword cloud_service_creation_option: A value indicating whether to use recovery cloud + service for TFO or not. + :paramtype cloud_service_creation_option: str """ super().__init__(**kwargs) - self.disk_id = disk_id - self.primary_staging_azure_storage_account_id = primary_staging_azure_storage_account_id - self.recovery_resource_group_id = recovery_resource_group_id - self.recovery_replica_disk_account_type = recovery_replica_disk_account_type - self.recovery_target_disk_account_type = recovery_target_disk_account_type - self.recovery_disk_encryption_set_id = recovery_disk_encryption_set_id - self.disk_encryption_info = disk_encryption_info + self.instance_type: str = "A2A" + self.recovery_point_id = recovery_point_id + self.cloud_service_creation_option = cloud_service_creation_option -class A2AVmManagedDiskUpdateDetails(_serialization.Model): - """A2A Vm managed disk update details. +class UnplannedFailoverProviderSpecificInput(_serialization.Model): + """Provider specific unplanned failover input. - :ivar disk_id: The disk Id. - :vartype disk_id: str - :ivar recovery_target_disk_account_type: The target disk type before failover. - :vartype recovery_target_disk_account_type: str - :ivar recovery_replica_disk_account_type: The replica disk type before failover. - :vartype recovery_replica_disk_account_type: str - :ivar disk_encryption_info: The recovery os disk encryption information. - :vartype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo - :ivar failover_disk_name: The target disk name for unplanned failover operation. - :vartype failover_disk_name: str - :ivar tfo_disk_name: The target disk name for test failover operation. - :vartype tfo_disk_name: str - """ + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AUnplannedFailoverInput, HyperVReplicaAzureUnplannedFailoverInput, + InMageUnplannedFailoverInput, InMageAzureV2UnplannedFailoverInput, + InMageRcmUnplannedFailoverInput - _attribute_map = { - "disk_id": {"key": "diskId", "type": "str"}, - "recovery_target_disk_account_type": {"key": "recoveryTargetDiskAccountType", "type": "str"}, - "recovery_replica_disk_account_type": {"key": "recoveryReplicaDiskAccountType", "type": "str"}, - "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, - "failover_disk_name": {"key": "failoverDiskName", "type": "str"}, - "tfo_disk_name": {"key": "tfoDiskName", "type": "str"}, + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + _subtype_map = { + "instance_type": { + "A2A": "A2AUnplannedFailoverInput", + "HyperVReplicaAzure": "HyperVReplicaAzureUnplannedFailoverInput", + "InMage": "InMageUnplannedFailoverInput", + "InMageAzureV2": "InMageAzureV2UnplannedFailoverInput", + "InMageRcm": "InMageRcmUnplannedFailoverInput", + } + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class A2AUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): + """A2A provider specific input for unplanned failover. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar recovery_point_id: The recovery point id to be passed to failover to a particular + recovery point. In case of latest recovery point, null should be passed. + :vartype recovery_point_id: str + :ivar cloud_service_creation_option: A value indicating whether to use recovery cloud service + for failover or not. + :vartype cloud_service_creation_option: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, + "cloud_service_creation_option": {"key": "cloudServiceCreationOption", "type": "str"}, } def __init__( self, *, - disk_id: Optional[str] = None, - recovery_target_disk_account_type: Optional[str] = None, - recovery_replica_disk_account_type: Optional[str] = None, - disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, - failover_disk_name: Optional[str] = None, - tfo_disk_name: Optional[str] = None, + recovery_point_id: Optional[str] = None, + cloud_service_creation_option: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword disk_id: The disk Id. - :paramtype disk_id: str - :keyword recovery_target_disk_account_type: The target disk type before failover. - :paramtype recovery_target_disk_account_type: str - :keyword recovery_replica_disk_account_type: The replica disk type before failover. - :paramtype recovery_replica_disk_account_type: str - :keyword disk_encryption_info: The recovery os disk encryption information. - :paramtype disk_encryption_info: - ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo - :keyword failover_disk_name: The target disk name for unplanned failover operation. - :paramtype failover_disk_name: str - :keyword tfo_disk_name: The target disk name for test failover operation. - :paramtype tfo_disk_name: str + :keyword recovery_point_id: The recovery point id to be passed to failover to a particular + recovery point. In case of latest recovery point, null should be passed. + :paramtype recovery_point_id: str + :keyword cloud_service_creation_option: A value indicating whether to use recovery cloud + service for failover or not. + :paramtype cloud_service_creation_option: str """ super().__init__(**kwargs) - self.disk_id = disk_id - self.recovery_target_disk_account_type = recovery_target_disk_account_type - self.recovery_replica_disk_account_type = recovery_replica_disk_account_type - self.disk_encryption_info = disk_encryption_info - self.failover_disk_name = failover_disk_name - self.tfo_disk_name = tfo_disk_name + self.instance_type: str = "A2A" + self.recovery_point_id = recovery_point_id + self.cloud_service_creation_option = cloud_service_creation_option -class A2AZoneDetails(_serialization.Model): - """Zone details data. +class A2AUnprotectedDiskDetails(_serialization.Model): + """A2A unprotected disk details. - :ivar source: Source zone info. - :vartype source: str - :ivar target: The target zone info. - :vartype target: str + :ivar disk_lun_id: The source lun Id for the data disk. + :vartype disk_lun_id: int + :ivar disk_auto_protection_status: A value indicating whether the disk auto protection is + enabled. Known values are: "Disabled" and "Enabled". + :vartype disk_auto_protection_status: str or + ~azure.mgmt.recoveryservicessiterecovery.models.AutoProtectionOfDataDisk """ _attribute_map = { - "source": {"key": "source", "type": "str"}, - "target": {"key": "target", "type": "str"}, + "disk_lun_id": {"key": "diskLunId", "type": "int"}, + "disk_auto_protection_status": {"key": "diskAutoProtectionStatus", "type": "str"}, } - def __init__(self, *, source: Optional[str] = None, target: Optional[str] = None, **kwargs: Any) -> None: + def __init__( + self, + *, + disk_lun_id: Optional[int] = None, + disk_auto_protection_status: Optional[Union[str, "_models.AutoProtectionOfDataDisk"]] = None, + **kwargs: Any + ) -> None: """ - :keyword source: Source zone info. - :paramtype source: str - :keyword target: The target zone info. - :paramtype target: str + :keyword disk_lun_id: The source lun Id for the data disk. + :paramtype disk_lun_id: int + :keyword disk_auto_protection_status: A value indicating whether the disk auto protection is + enabled. Known values are: "Disabled" and "Enabled". + :paramtype disk_auto_protection_status: str or + ~azure.mgmt.recoveryservicessiterecovery.models.AutoProtectionOfDataDisk """ super().__init__(**kwargs) - self.source = source - self.target = target + self.disk_lun_id = disk_lun_id + self.disk_auto_protection_status = disk_auto_protection_status -class AddDisksInput(_serialization.Model): - """Input for add disk(s) operation. +class ReplicationProviderSpecificUpdateContainerMappingInput(_serialization.Model): # pylint: disable=name-too-long + """Provider specific input for update pairing operations. - :ivar properties: Add disks input properties. - :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInputProperties + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AUpdateContainerMappingInput, InMageRcmUpdateContainerMappingInput + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str """ + _validation = { + "instance_type": {"required": True}, + } + _attribute_map = { - "properties": {"key": "properties", "type": "AddDisksInputProperties"}, + "instance_type": {"key": "instanceType", "type": "str"}, } - def __init__(self, *, properties: Optional["_models.AddDisksInputProperties"] = None, **kwargs: Any) -> None: - """ - :keyword properties: Add disks input properties. - :paramtype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInputProperties - """ + _subtype_map = { + "instance_type": {"A2A": "A2AUpdateContainerMappingInput", "InMageRcm": "InMageRcmUpdateContainerMappingInput"} + } + + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) - self.properties = properties + self.instance_type: Optional[str] = None -class AddDisksInputProperties(_serialization.Model): - """Add Disks input properties. +class A2AUpdateContainerMappingInput(ReplicationProviderSpecificUpdateContainerMappingInput): + """A2A update protection container mapping. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar provider_specific_details: The ReplicationProviderInput. For HyperVReplicaAzure provider, - it will be AzureEnableProtectionInput object. For San provider, it will be - SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. Required. - :vartype provider_specific_details: - ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksProviderSpecificInput + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar agent_auto_update_status: A value indicating whether the auto update is enabled. Known + values are: "Disabled" and "Enabled". + :vartype agent_auto_update_status: str or + ~azure.mgmt.recoveryservicessiterecovery.models.AgentAutoUpdateStatus + :ivar automation_account_arm_id: The automation account arm id. + :vartype automation_account_arm_id: str + :ivar automation_account_authentication_type: A value indicating the type authentication to use + for automation Account. Known values are: "RunAsAccount" and "SystemAssignedIdentity". + :vartype automation_account_authentication_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.AutomationAccountAuthenticationType """ _validation = { - "provider_specific_details": {"required": True}, + "instance_type": {"required": True}, } _attribute_map = { - "provider_specific_details": {"key": "providerSpecificDetails", "type": "AddDisksProviderSpecificInput"}, + "instance_type": {"key": "instanceType", "type": "str"}, + "agent_auto_update_status": {"key": "agentAutoUpdateStatus", "type": "str"}, + "automation_account_arm_id": {"key": "automationAccountArmId", "type": "str"}, + "automation_account_authentication_type": {"key": "automationAccountAuthenticationType", "type": "str"}, } - def __init__(self, *, provider_specific_details: "_models.AddDisksProviderSpecificInput", **kwargs: Any) -> None: + def __init__( + self, + *, + agent_auto_update_status: Optional[Union[str, "_models.AgentAutoUpdateStatus"]] = None, + automation_account_arm_id: Optional[str] = None, + automation_account_authentication_type: Optional[ + Union[str, "_models.AutomationAccountAuthenticationType"] + ] = None, + **kwargs: Any + ) -> None: """ - :keyword provider_specific_details: The ReplicationProviderInput. For HyperVReplicaAzure - provider, it will be AzureEnableProtectionInput object. For San provider, it will be - SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. Required. - :paramtype provider_specific_details: - ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksProviderSpecificInput + :keyword agent_auto_update_status: A value indicating whether the auto update is enabled. Known + values are: "Disabled" and "Enabled". + :paramtype agent_auto_update_status: str or + ~azure.mgmt.recoveryservicessiterecovery.models.AgentAutoUpdateStatus + :keyword automation_account_arm_id: The automation account arm id. + :paramtype automation_account_arm_id: str + :keyword automation_account_authentication_type: A value indicating the type authentication to + use for automation Account. Known values are: "RunAsAccount" and "SystemAssignedIdentity". + :paramtype automation_account_authentication_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.AutomationAccountAuthenticationType """ super().__init__(**kwargs) - self.provider_specific_details = provider_specific_details + self.instance_type: str = "A2A" + self.agent_auto_update_status = agent_auto_update_status + self.automation_account_arm_id = automation_account_arm_id + self.automation_account_authentication_type = automation_account_authentication_type -class AddRecoveryServicesProviderInput(_serialization.Model): - """Input required to add a provider. +class UpdateReplicationProtectedItemProviderInput(_serialization.Model): # pylint: disable=name-too-long + """Update replication protected item provider specific input. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + A2AUpdateReplicationProtectedItemInput, HyperVReplicaAzureUpdateReplicationProtectedItemInput, + InMageAzureV2UpdateReplicationProtectedItemInput, InMageRcmUpdateReplicationProtectedItemInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar properties: The properties of an add provider request. Required. - :vartype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInputProperties + :ivar instance_type: The class type. Required. + :vartype instance_type: str """ _validation = { - "properties": {"required": True}, + "instance_type": {"required": True}, } _attribute_map = { - "properties": {"key": "properties", "type": "AddRecoveryServicesProviderInputProperties"}, + "instance_type": {"key": "instanceType", "type": "str"}, } - def __init__(self, *, properties: "_models.AddRecoveryServicesProviderInputProperties", **kwargs: Any) -> None: - """ - :keyword properties: The properties of an add provider request. Required. - :paramtype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInputProperties - """ - super().__init__(**kwargs) - self.properties = properties - + _subtype_map = { + "instance_type": { + "A2A": "A2AUpdateReplicationProtectedItemInput", + "HyperVReplicaAzure": "HyperVReplicaAzureUpdateReplicationProtectedItemInput", + "InMageAzureV2": "InMageAzureV2UpdateReplicationProtectedItemInput", + "InMageRcm": "InMageRcmUpdateReplicationProtectedItemInput", + } + } -class AddRecoveryServicesProviderInputProperties(_serialization.Model): - """The properties of an add provider request. + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class A2AUpdateReplicationProtectedItemInput(UpdateReplicationProtectedItemProviderInput): + """InMage Azure V2 input to update replication protected item. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar recovery_cloud_service_id: The target cloud service ARM Id (for V1). + :vartype recovery_cloud_service_id: str + :ivar recovery_resource_group_id: The target resource group ARM Id (for V2). + :vartype recovery_resource_group_id: str + :ivar managed_disk_update_details: Managed disk update details. + :vartype managed_disk_update_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskUpdateDetails] + :ivar recovery_boot_diag_storage_account_id: The boot diagnostic storage account. + :vartype recovery_boot_diag_storage_account_id: str + :ivar disk_encryption_info: The recovery os disk encryption information. + :vartype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :ivar tfo_azure_vm_name: The user given name for Test Failover VM. + :vartype tfo_azure_vm_name: str + :ivar recovery_proximity_placement_group_id: The recovery proximity placement group Id. + :vartype recovery_proximity_placement_group_id: str + :ivar recovery_virtual_machine_scale_set_id: The recovery virtual machine scale set Id. + :vartype recovery_virtual_machine_scale_set_id: str + :ivar recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. + :vartype recovery_capacity_reservation_group_id: str + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "recovery_cloud_service_id": {"key": "recoveryCloudServiceId", "type": "str"}, + "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, + "managed_disk_update_details": {"key": "managedDiskUpdateDetails", "type": "[A2AVmManagedDiskUpdateDetails]"}, + "recovery_boot_diag_storage_account_id": {"key": "recoveryBootDiagStorageAccountId", "type": "str"}, + "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, + "tfo_azure_vm_name": {"key": "tfoAzureVMName", "type": "str"}, + "recovery_proximity_placement_group_id": {"key": "recoveryProximityPlacementGroupId", "type": "str"}, + "recovery_virtual_machine_scale_set_id": {"key": "recoveryVirtualMachineScaleSetId", "type": "str"}, + "recovery_capacity_reservation_group_id": {"key": "recoveryCapacityReservationGroupId", "type": "str"}, + } + + def __init__( + self, + *, + recovery_cloud_service_id: Optional[str] = None, + recovery_resource_group_id: Optional[str] = None, + managed_disk_update_details: Optional[List["_models.A2AVmManagedDiskUpdateDetails"]] = None, + recovery_boot_diag_storage_account_id: Optional[str] = None, + disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, + tfo_azure_vm_name: Optional[str] = None, + recovery_proximity_placement_group_id: Optional[str] = None, + recovery_virtual_machine_scale_set_id: Optional[str] = None, + recovery_capacity_reservation_group_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword recovery_cloud_service_id: The target cloud service ARM Id (for V1). + :paramtype recovery_cloud_service_id: str + :keyword recovery_resource_group_id: The target resource group ARM Id (for V2). + :paramtype recovery_resource_group_id: str + :keyword managed_disk_update_details: Managed disk update details. + :paramtype managed_disk_update_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AVmManagedDiskUpdateDetails] + :keyword recovery_boot_diag_storage_account_id: The boot diagnostic storage account. + :paramtype recovery_boot_diag_storage_account_id: str + :keyword disk_encryption_info: The recovery os disk encryption information. + :paramtype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :keyword tfo_azure_vm_name: The user given name for Test Failover VM. + :paramtype tfo_azure_vm_name: str + :keyword recovery_proximity_placement_group_id: The recovery proximity placement group Id. + :paramtype recovery_proximity_placement_group_id: str + :keyword recovery_virtual_machine_scale_set_id: The recovery virtual machine scale set Id. + :paramtype recovery_virtual_machine_scale_set_id: str + :keyword recovery_capacity_reservation_group_id: The recovery capacity reservation group Id. + :paramtype recovery_capacity_reservation_group_id: str + """ + super().__init__(**kwargs) + self.instance_type: str = "A2A" + self.recovery_cloud_service_id = recovery_cloud_service_id + self.recovery_resource_group_id = recovery_resource_group_id + self.managed_disk_update_details = managed_disk_update_details + self.recovery_boot_diag_storage_account_id = recovery_boot_diag_storage_account_id + self.disk_encryption_info = disk_encryption_info + self.tfo_azure_vm_name = tfo_azure_vm_name + self.recovery_proximity_placement_group_id = recovery_proximity_placement_group_id + self.recovery_virtual_machine_scale_set_id = recovery_virtual_machine_scale_set_id + self.recovery_capacity_reservation_group_id = recovery_capacity_reservation_group_id + + +class A2AVmDiskInputDetails(_serialization.Model): + """A2A disk input details. + + All required parameters must be populated in order to send to server. + + :ivar disk_uri: The disk Uri. Required. + :vartype disk_uri: str + :ivar recovery_azure_storage_account_id: The recovery VHD storage account Id. Required. + :vartype recovery_azure_storage_account_id: str + :ivar primary_staging_azure_storage_account_id: The primary staging storage account Id. + Required. + :vartype primary_staging_azure_storage_account_id: str + """ + + _validation = { + "disk_uri": {"required": True}, + "recovery_azure_storage_account_id": {"required": True}, + "primary_staging_azure_storage_account_id": {"required": True}, + } + + _attribute_map = { + "disk_uri": {"key": "diskUri", "type": "str"}, + "recovery_azure_storage_account_id": {"key": "recoveryAzureStorageAccountId", "type": "str"}, + "primary_staging_azure_storage_account_id": {"key": "primaryStagingAzureStorageAccountId", "type": "str"}, + } + + def __init__( + self, + *, + disk_uri: str, + recovery_azure_storage_account_id: str, + primary_staging_azure_storage_account_id: str, + **kwargs: Any + ) -> None: + """ + :keyword disk_uri: The disk Uri. Required. + :paramtype disk_uri: str + :keyword recovery_azure_storage_account_id: The recovery VHD storage account Id. Required. + :paramtype recovery_azure_storage_account_id: str + :keyword primary_staging_azure_storage_account_id: The primary staging storage account Id. + Required. + :paramtype primary_staging_azure_storage_account_id: str + """ + super().__init__(**kwargs) + self.disk_uri = disk_uri + self.recovery_azure_storage_account_id = recovery_azure_storage_account_id + self.primary_staging_azure_storage_account_id = primary_staging_azure_storage_account_id + + +class A2AVmManagedDiskInputDetails(_serialization.Model): + """A2A managed disk input details. + + All required parameters must be populated in order to send to server. + + :ivar disk_id: The disk Id. Required. + :vartype disk_id: str + :ivar primary_staging_azure_storage_account_id: The primary staging storage account Arm Id. + Required. + :vartype primary_staging_azure_storage_account_id: str + :ivar recovery_resource_group_id: The target resource group Arm Id. Required. + :vartype recovery_resource_group_id: str + :ivar recovery_replica_disk_account_type: The replica disk type. Its an optional value and will + be same as source disk type if not user provided. + :vartype recovery_replica_disk_account_type: str + :ivar recovery_target_disk_account_type: The target disk type after failover. Its an optional + value and will be same as source disk type if not user provided. + :vartype recovery_target_disk_account_type: str + :ivar recovery_disk_encryption_set_id: The recovery disk encryption set Id. + :vartype recovery_disk_encryption_set_id: str + :ivar disk_encryption_info: The recovery disk encryption information (for one / single pass + flows). + :vartype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + """ + + _validation = { + "disk_id": {"required": True}, + "primary_staging_azure_storage_account_id": {"required": True}, + "recovery_resource_group_id": {"required": True}, + } + + _attribute_map = { + "disk_id": {"key": "diskId", "type": "str"}, + "primary_staging_azure_storage_account_id": {"key": "primaryStagingAzureStorageAccountId", "type": "str"}, + "recovery_resource_group_id": {"key": "recoveryResourceGroupId", "type": "str"}, + "recovery_replica_disk_account_type": {"key": "recoveryReplicaDiskAccountType", "type": "str"}, + "recovery_target_disk_account_type": {"key": "recoveryTargetDiskAccountType", "type": "str"}, + "recovery_disk_encryption_set_id": {"key": "recoveryDiskEncryptionSetId", "type": "str"}, + "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, + } + + def __init__( + self, + *, + disk_id: str, + primary_staging_azure_storage_account_id: str, + recovery_resource_group_id: str, + recovery_replica_disk_account_type: Optional[str] = None, + recovery_target_disk_account_type: Optional[str] = None, + recovery_disk_encryption_set_id: Optional[str] = None, + disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, + **kwargs: Any + ) -> None: + """ + :keyword disk_id: The disk Id. Required. + :paramtype disk_id: str + :keyword primary_staging_azure_storage_account_id: The primary staging storage account Arm Id. + Required. + :paramtype primary_staging_azure_storage_account_id: str + :keyword recovery_resource_group_id: The target resource group Arm Id. Required. + :paramtype recovery_resource_group_id: str + :keyword recovery_replica_disk_account_type: The replica disk type. Its an optional value and + will be same as source disk type if not user provided. + :paramtype recovery_replica_disk_account_type: str + :keyword recovery_target_disk_account_type: The target disk type after failover. Its an + optional value and will be same as source disk type if not user provided. + :paramtype recovery_target_disk_account_type: str + :keyword recovery_disk_encryption_set_id: The recovery disk encryption set Id. + :paramtype recovery_disk_encryption_set_id: str + :keyword disk_encryption_info: The recovery disk encryption information (for one / single pass + flows). + :paramtype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + """ + super().__init__(**kwargs) + self.disk_id = disk_id + self.primary_staging_azure_storage_account_id = primary_staging_azure_storage_account_id + self.recovery_resource_group_id = recovery_resource_group_id + self.recovery_replica_disk_account_type = recovery_replica_disk_account_type + self.recovery_target_disk_account_type = recovery_target_disk_account_type + self.recovery_disk_encryption_set_id = recovery_disk_encryption_set_id + self.disk_encryption_info = disk_encryption_info + + +class A2AVmManagedDiskUpdateDetails(_serialization.Model): + """A2A Vm managed disk update details. + + :ivar disk_id: The disk Id. + :vartype disk_id: str + :ivar recovery_target_disk_account_type: The target disk type before failover. + :vartype recovery_target_disk_account_type: str + :ivar recovery_replica_disk_account_type: The replica disk type before failover. + :vartype recovery_replica_disk_account_type: str + :ivar disk_encryption_info: The recovery os disk encryption information. + :vartype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :ivar failover_disk_name: The target disk name for unplanned failover operation. + :vartype failover_disk_name: str + :ivar tfo_disk_name: The target disk name for test failover operation. + :vartype tfo_disk_name: str + """ + + _attribute_map = { + "disk_id": {"key": "diskId", "type": "str"}, + "recovery_target_disk_account_type": {"key": "recoveryTargetDiskAccountType", "type": "str"}, + "recovery_replica_disk_account_type": {"key": "recoveryReplicaDiskAccountType", "type": "str"}, + "disk_encryption_info": {"key": "diskEncryptionInfo", "type": "DiskEncryptionInfo"}, + "failover_disk_name": {"key": "failoverDiskName", "type": "str"}, + "tfo_disk_name": {"key": "tfoDiskName", "type": "str"}, + } + + def __init__( + self, + *, + disk_id: Optional[str] = None, + recovery_target_disk_account_type: Optional[str] = None, + recovery_replica_disk_account_type: Optional[str] = None, + disk_encryption_info: Optional["_models.DiskEncryptionInfo"] = None, + failover_disk_name: Optional[str] = None, + tfo_disk_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword disk_id: The disk Id. + :paramtype disk_id: str + :keyword recovery_target_disk_account_type: The target disk type before failover. + :paramtype recovery_target_disk_account_type: str + :keyword recovery_replica_disk_account_type: The replica disk type before failover. + :paramtype recovery_replica_disk_account_type: str + :keyword disk_encryption_info: The recovery os disk encryption information. + :paramtype disk_encryption_info: + ~azure.mgmt.recoveryservicessiterecovery.models.DiskEncryptionInfo + :keyword failover_disk_name: The target disk name for unplanned failover operation. + :paramtype failover_disk_name: str + :keyword tfo_disk_name: The target disk name for test failover operation. + :paramtype tfo_disk_name: str + """ + super().__init__(**kwargs) + self.disk_id = disk_id + self.recovery_target_disk_account_type = recovery_target_disk_account_type + self.recovery_replica_disk_account_type = recovery_replica_disk_account_type + self.disk_encryption_info = disk_encryption_info + self.failover_disk_name = failover_disk_name + self.tfo_disk_name = tfo_disk_name + + +class A2AZoneDetails(_serialization.Model): + """Zone details data. + + :ivar source: Source zone info. + :vartype source: str + :ivar target: The target zone info. + :vartype target: str + """ + + _attribute_map = { + "source": {"key": "source", "type": "str"}, + "target": {"key": "target", "type": "str"}, + } + + def __init__(self, *, source: Optional[str] = None, target: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword source: Source zone info. + :paramtype source: str + :keyword target: The target zone info. + :paramtype target: str + """ + super().__init__(**kwargs) + self.source = source + self.target = target + + +class AddDisksInput(_serialization.Model): + """Input for add disk(s) operation. + + :ivar properties: Add disks input properties. + :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInputProperties + """ + + _attribute_map = { + "properties": {"key": "properties", "type": "AddDisksInputProperties"}, + } + + def __init__(self, *, properties: Optional["_models.AddDisksInputProperties"] = None, **kwargs: Any) -> None: + """ + :keyword properties: Add disks input properties. + :paramtype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInputProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class AddDisksInputProperties(_serialization.Model): + """Add Disks input properties. + + All required parameters must be populated in order to send to server. + + :ivar provider_specific_details: The ReplicationProviderInput. For HyperVReplicaAzure provider, + it will be AzureEnableProtectionInput object. For San provider, it will be + SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. Required. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksProviderSpecificInput + """ + + _validation = { + "provider_specific_details": {"required": True}, + } + + _attribute_map = { + "provider_specific_details": {"key": "providerSpecificDetails", "type": "AddDisksProviderSpecificInput"}, + } + + def __init__(self, *, provider_specific_details: "_models.AddDisksProviderSpecificInput", **kwargs: Any) -> None: + """ + :keyword provider_specific_details: The ReplicationProviderInput. For HyperVReplicaAzure + provider, it will be AzureEnableProtectionInput object. For San provider, it will be + SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. Required. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksProviderSpecificInput + """ + super().__init__(**kwargs) + self.provider_specific_details = provider_specific_details + + +class AddRecoveryServicesProviderInput(_serialization.Model): + """Input required to add a provider. + + All required parameters must be populated in order to send to server. + + :ivar properties: The properties of an add provider request. Required. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInputProperties + """ + + _validation = { + "properties": {"required": True}, + } + + _attribute_map = { + "properties": {"key": "properties", "type": "AddRecoveryServicesProviderInputProperties"}, + } + + def __init__(self, *, properties: "_models.AddRecoveryServicesProviderInputProperties", **kwargs: Any) -> None: + """ + :keyword properties: The properties of an add provider request. Required. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInputProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class AddRecoveryServicesProviderInputProperties(_serialization.Model): # pylint: disable=name-too-long + """The properties of an add provider request. + + All required parameters must be populated in order to send to server. + + :ivar machine_name: The name of the machine where the provider is getting added. Required. + :vartype machine_name: str + :ivar machine_id: The Id of the machine where the provider is getting added. + :vartype machine_id: str + :ivar bios_id: The Bios Id of the machine. + :vartype bios_id: str + :ivar authentication_identity_input: The identity provider input for DRA authentication. + Required. + :vartype authentication_identity_input: + ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + :ivar resource_access_identity_input: The identity provider input for resource access. + Required. + :vartype resource_access_identity_input: + ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + :ivar data_plane_authentication_identity_input: The identity provider input for data plane + authentication. + :vartype data_plane_authentication_identity_input: + ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + """ + + _validation = { + "machine_name": {"required": True}, + "authentication_identity_input": {"required": True}, + "resource_access_identity_input": {"required": True}, + } + + _attribute_map = { + "machine_name": {"key": "machineName", "type": "str"}, + "machine_id": {"key": "machineId", "type": "str"}, + "bios_id": {"key": "biosId", "type": "str"}, + "authentication_identity_input": {"key": "authenticationIdentityInput", "type": "IdentityProviderInput"}, + "resource_access_identity_input": {"key": "resourceAccessIdentityInput", "type": "IdentityProviderInput"}, + "data_plane_authentication_identity_input": { + "key": "dataPlaneAuthenticationIdentityInput", + "type": "IdentityProviderInput", + }, + } + + def __init__( + self, + *, + machine_name: str, + authentication_identity_input: "_models.IdentityProviderInput", + resource_access_identity_input: "_models.IdentityProviderInput", + machine_id: Optional[str] = None, + bios_id: Optional[str] = None, + data_plane_authentication_identity_input: Optional["_models.IdentityProviderInput"] = None, + **kwargs: Any + ) -> None: + """ + :keyword machine_name: The name of the machine where the provider is getting added. Required. + :paramtype machine_name: str + :keyword machine_id: The Id of the machine where the provider is getting added. + :paramtype machine_id: str + :keyword bios_id: The Bios Id of the machine. + :paramtype bios_id: str + :keyword authentication_identity_input: The identity provider input for DRA authentication. + Required. + :paramtype authentication_identity_input: + ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + :keyword resource_access_identity_input: The identity provider input for resource access. + Required. + :paramtype resource_access_identity_input: + ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + :keyword data_plane_authentication_identity_input: The identity provider input for data plane + authentication. + :paramtype data_plane_authentication_identity_input: + ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + """ + super().__init__(**kwargs) + self.machine_name = machine_name + self.machine_id = machine_id + self.bios_id = bios_id + self.authentication_identity_input = authentication_identity_input + self.resource_access_identity_input = resource_access_identity_input + self.data_plane_authentication_identity_input = data_plane_authentication_identity_input + + +class AddVCenterRequest(_serialization.Model): + """Input required to add vCenter. + + :ivar properties: The properties of an add vCenter request. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.AddVCenterRequestProperties + """ + + _attribute_map = { + "properties": {"key": "properties", "type": "AddVCenterRequestProperties"}, + } + + def __init__(self, *, properties: Optional["_models.AddVCenterRequestProperties"] = None, **kwargs: Any) -> None: + """ + :keyword properties: The properties of an add vCenter request. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.AddVCenterRequestProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class AddVCenterRequestProperties(_serialization.Model): + """The properties of an add vCenter request. + + :ivar friendly_name: The friendly name of the vCenter. + :vartype friendly_name: str + :ivar ip_address: The IP address of the vCenter to be discovered. + :vartype ip_address: str + :ivar process_server_id: The process server Id from where the discovery is orchestrated. + :vartype process_server_id: str + :ivar port: The port number for discovery. + :vartype port: str + :ivar run_as_account_id: The account Id which has privileges to discover the vCenter. + :vartype run_as_account_id: str + """ + + _attribute_map = { + "friendly_name": {"key": "friendlyName", "type": "str"}, + "ip_address": {"key": "ipAddress", "type": "str"}, + "process_server_id": {"key": "processServerId", "type": "str"}, + "port": {"key": "port", "type": "str"}, + "run_as_account_id": {"key": "runAsAccountId", "type": "str"}, + } + + def __init__( + self, + *, + friendly_name: Optional[str] = None, + ip_address: Optional[str] = None, + process_server_id: Optional[str] = None, + port: Optional[str] = None, + run_as_account_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword friendly_name: The friendly name of the vCenter. + :paramtype friendly_name: str + :keyword ip_address: The IP address of the vCenter to be discovered. + :paramtype ip_address: str + :keyword process_server_id: The process server Id from where the discovery is orchestrated. + :paramtype process_server_id: str + :keyword port: The port number for discovery. + :paramtype port: str + :keyword run_as_account_id: The account Id which has privileges to discover the vCenter. + :paramtype run_as_account_id: str + """ + super().__init__(**kwargs) + self.friendly_name = friendly_name + self.ip_address = ip_address + self.process_server_id = process_server_id + self.port = port + self.run_as_account_id = run_as_account_id - All required parameters must be populated in order to send to Azure. - :ivar machine_name: The name of the machine where the provider is getting added. Required. - :vartype machine_name: str - :ivar machine_id: The Id of the machine where the provider is getting added. +class AgentDetails(_serialization.Model): + """Agent details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar agent_id: The Id of the agent running on the server. + :vartype agent_id: str + :ivar machine_id: The Id of the machine to which the agent is registered. :vartype machine_id: str - :ivar bios_id: The Bios Id of the machine. + :ivar bios_id: The machine BIOS Id. :vartype bios_id: str - :ivar authentication_identity_input: The identity provider input for DRA authentication. - Required. - :vartype authentication_identity_input: - ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput - :ivar resource_access_identity_input: The identity provider input for resource access. - Required. - :vartype resource_access_identity_input: - ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput - :ivar data_plane_authentication_identity_input: The identity provider input for data plane - authentication. - :vartype data_plane_authentication_identity_input: - ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + :ivar fqdn: The machine FQDN. + :vartype fqdn: str + :ivar disks: The disks. + :vartype disks: list[~azure.mgmt.recoveryservicessiterecovery.models.AgentDiskDetails] + """ + + _validation = { + "agent_id": {"readonly": True}, + "machine_id": {"readonly": True}, + "bios_id": {"readonly": True}, + "fqdn": {"readonly": True}, + "disks": {"readonly": True}, + } + + _attribute_map = { + "agent_id": {"key": "agentId", "type": "str"}, + "machine_id": {"key": "machineId", "type": "str"}, + "bios_id": {"key": "biosId", "type": "str"}, + "fqdn": {"key": "fqdn", "type": "str"}, + "disks": {"key": "disks", "type": "[AgentDiskDetails]"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.agent_id: Optional[str] = None + self.machine_id: Optional[str] = None + self.bios_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.disks: Optional[List["_models.AgentDiskDetails"]] = None + + +class AgentDiskDetails(_serialization.Model): + """Agent disk details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar disk_id: The disk Id. + :vartype disk_id: str + :ivar disk_name: The disk name. + :vartype disk_name: str + :ivar is_os_disk: A value indicating whether the disk is the OS disk. + :vartype is_os_disk: str + :ivar capacity_in_bytes: The disk capacity in bytes. + :vartype capacity_in_bytes: int + :ivar lun_id: The lun of disk. + :vartype lun_id: int + """ + + _validation = { + "disk_id": {"readonly": True}, + "disk_name": {"readonly": True}, + "is_os_disk": {"readonly": True}, + "capacity_in_bytes": {"readonly": True}, + "lun_id": {"readonly": True}, + } + + _attribute_map = { + "disk_id": {"key": "diskId", "type": "str"}, + "disk_name": {"key": "diskName", "type": "str"}, + "is_os_disk": {"key": "isOSDisk", "type": "str"}, + "capacity_in_bytes": {"key": "capacityInBytes", "type": "int"}, + "lun_id": {"key": "lunId", "type": "int"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.disk_id: Optional[str] = None + self.disk_name: Optional[str] = None + self.is_os_disk: Optional[str] = None + self.capacity_in_bytes: Optional[int] = None + self.lun_id: Optional[int] = None + + +class Resource(_serialization.Model): + """Azure resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :ivar type: Resource Type. + :vartype type: str + :ivar location: Resource Location. + :vartype location: str + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "location": {"key": "location", "type": "str"}, + } + + def __init__(self, *, location: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword location: Resource Location. + :paramtype location: str + """ + super().__init__(**kwargs) + self.id: Optional[str] = None + self.name: Optional[str] = None + self.type: Optional[str] = None + self.location = location + + +class Alert(Resource): + """Implements the Alert class. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :ivar type: Resource Type. + :vartype type: str + :ivar location: Resource Location. + :vartype location: str + :ivar properties: Alert related data. + :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AlertProperties + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "AlertProperties"}, + } + + def __init__( + self, *, location: Optional[str] = None, properties: Optional["_models.AlertProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword location: Resource Location. + :paramtype location: str + :keyword properties: Alert related data. + :paramtype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AlertProperties + """ + super().__init__(location=location, **kwargs) + self.properties = properties + + +class AlertCollection(_serialization.Model): + """Collection of alerts. + + :ivar value: The list of alerts. + :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.Alert] + :ivar next_link: The value of next link. + :vartype next_link: str + """ + + _attribute_map = { + "value": {"key": "value", "type": "[Alert]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__( + self, *, value: Optional[List["_models.Alert"]] = None, next_link: Optional[str] = None, **kwargs: Any + ) -> None: + """ + :keyword value: The list of alerts. + :paramtype value: list[~azure.mgmt.recoveryservicessiterecovery.models.Alert] + :keyword next_link: The value of next link. + :paramtype next_link: str + """ + super().__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class AlertProperties(_serialization.Model): + """The properties of an alert. + + :ivar send_to_owners: A value indicating whether to send email to subscription administrator. + :vartype send_to_owners: str + :ivar custom_email_addresses: The custom email address for sending emails. + :vartype custom_email_addresses: list[str] + :ivar locale: The locale for the email notification. + :vartype locale: str """ - _validation = { - "machine_name": {"required": True}, - "authentication_identity_input": {"required": True}, - "resource_access_identity_input": {"required": True}, - } + _attribute_map = { + "send_to_owners": {"key": "sendToOwners", "type": "str"}, + "custom_email_addresses": {"key": "customEmailAddresses", "type": "[str]"}, + "locale": {"key": "locale", "type": "str"}, + } + + def __init__( + self, + *, + send_to_owners: Optional[str] = None, + custom_email_addresses: Optional[List[str]] = None, + locale: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword send_to_owners: A value indicating whether to send email to subscription + administrator. + :paramtype send_to_owners: str + :keyword custom_email_addresses: The custom email address for sending emails. + :paramtype custom_email_addresses: list[str] + :keyword locale: The locale for the email notification. + :paramtype locale: str + """ + super().__init__(**kwargs) + self.send_to_owners = send_to_owners + self.custom_email_addresses = custom_email_addresses + self.locale = locale + + +class ApplianceCollection(_serialization.Model): + """Collection of appliance details. + + :ivar value: The appliance details. + :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationAppliance] + :ivar next_link: The value of next link. + :vartype next_link: str + """ _attribute_map = { - "machine_name": {"key": "machineName", "type": "str"}, - "machine_id": {"key": "machineId", "type": "str"}, - "bios_id": {"key": "biosId", "type": "str"}, - "authentication_identity_input": {"key": "authenticationIdentityInput", "type": "IdentityProviderInput"}, - "resource_access_identity_input": {"key": "resourceAccessIdentityInput", "type": "IdentityProviderInput"}, - "data_plane_authentication_identity_input": { - "key": "dataPlaneAuthenticationIdentityInput", - "type": "IdentityProviderInput", - }, + "value": {"key": "value", "type": "[ReplicationAppliance]"}, + "next_link": {"key": "nextLink", "type": "str"}, } def __init__( self, *, - machine_name: str, - authentication_identity_input: "_models.IdentityProviderInput", - resource_access_identity_input: "_models.IdentityProviderInput", - machine_id: Optional[str] = None, - bios_id: Optional[str] = None, - data_plane_authentication_identity_input: Optional["_models.IdentityProviderInput"] = None, + value: Optional[List["_models.ReplicationAppliance"]] = None, + next_link: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword machine_name: The name of the machine where the provider is getting added. Required. - :paramtype machine_name: str - :keyword machine_id: The Id of the machine where the provider is getting added. - :paramtype machine_id: str - :keyword bios_id: The Bios Id of the machine. - :paramtype bios_id: str - :keyword authentication_identity_input: The identity provider input for DRA authentication. - Required. - :paramtype authentication_identity_input: - ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput - :keyword resource_access_identity_input: The identity provider input for resource access. - Required. - :paramtype resource_access_identity_input: - ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput - :keyword data_plane_authentication_identity_input: The identity provider input for data plane - authentication. - :paramtype data_plane_authentication_identity_input: - ~azure.mgmt.recoveryservicessiterecovery.models.IdentityProviderInput + :keyword value: The appliance details. + :paramtype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationAppliance] + :keyword next_link: The value of next link. + :paramtype next_link: str """ super().__init__(**kwargs) - self.machine_name = machine_name - self.machine_id = machine_id - self.bios_id = bios_id - self.authentication_identity_input = authentication_identity_input - self.resource_access_identity_input = resource_access_identity_input - self.data_plane_authentication_identity_input = data_plane_authentication_identity_input + self.value = value + self.next_link = next_link -class AddVCenterRequest(_serialization.Model): - """Input required to add vCenter. +class ApplianceMonitoringDetails(_serialization.Model): + """Appliance details of the migration item. - :ivar properties: The properties of an add vCenter request. - :vartype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.AddVCenterRequestProperties + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar cpu_details: The appliance CPU details. + :vartype cpu_details: ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails + :ivar ram_details: The appliance RAM details. + :vartype ram_details: ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails + :ivar datastore_snapshot: The appliance datastore snapshot details. + :vartype datastore_snapshot: + list[~azure.mgmt.recoveryservicessiterecovery.models.DataStoreUtilizationDetails] + :ivar disks_replication_details: The disk replication details. + :vartype disks_replication_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails + :ivar esxi_nfc_buffer: The ESXi NFC buffer details. + :vartype esxi_nfc_buffer: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails + :ivar network_bandwidth: The appliance network bandwidth details. + :vartype network_bandwidth: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails """ + _validation = { + "cpu_details": {"readonly": True}, + "ram_details": {"readonly": True}, + "datastore_snapshot": {"readonly": True}, + "disks_replication_details": {"readonly": True}, + "esxi_nfc_buffer": {"readonly": True}, + "network_bandwidth": {"readonly": True}, + } + _attribute_map = { - "properties": {"key": "properties", "type": "AddVCenterRequestProperties"}, + "cpu_details": {"key": "cpuDetails", "type": "ApplianceResourceDetails"}, + "ram_details": {"key": "ramDetails", "type": "ApplianceResourceDetails"}, + "datastore_snapshot": {"key": "datastoreSnapshot", "type": "[DataStoreUtilizationDetails]"}, + "disks_replication_details": {"key": "disksReplicationDetails", "type": "ApplianceResourceDetails"}, + "esxi_nfc_buffer": {"key": "esxiNfcBuffer", "type": "ApplianceResourceDetails"}, + "network_bandwidth": {"key": "networkBandwidth", "type": "ApplianceResourceDetails"}, } - def __init__(self, *, properties: Optional["_models.AddVCenterRequestProperties"] = None, **kwargs: Any) -> None: - """ - :keyword properties: The properties of an add vCenter request. - :paramtype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.AddVCenterRequestProperties - """ + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) - self.properties = properties + self.cpu_details: Optional["_models.ApplianceResourceDetails"] = None + self.ram_details: Optional["_models.ApplianceResourceDetails"] = None + self.datastore_snapshot: Optional[List["_models.DataStoreUtilizationDetails"]] = None + self.disks_replication_details: Optional["_models.ApplianceResourceDetails"] = None + self.esxi_nfc_buffer: Optional["_models.ApplianceResourceDetails"] = None + self.network_bandwidth: Optional["_models.ApplianceResourceDetails"] = None -class AddVCenterRequestProperties(_serialization.Model): - """The properties of an add vCenter request. +class ApplianceQueryParameter(_serialization.Model): + """Query parameter to get appliance. - :ivar friendly_name: The friendly name of the vCenter. - :vartype friendly_name: str - :ivar ip_address: The IP address of the vCenter to be discovered. - :vartype ip_address: str - :ivar process_server_id: The process server Id from where the discovery is orchestrated. - :vartype process_server_id: str - :ivar port: The port number for discovery. - :vartype port: str - :ivar run_as_account_id: The account Id which has privileges to discover the vCenter. - :vartype run_as_account_id: str + :ivar provider_type: The providerType to be used for fetching appliance details. + :vartype provider_type: str """ _attribute_map = { - "friendly_name": {"key": "friendlyName", "type": "str"}, - "ip_address": {"key": "ipAddress", "type": "str"}, - "process_server_id": {"key": "processServerId", "type": "str"}, - "port": {"key": "port", "type": "str"}, - "run_as_account_id": {"key": "runAsAccountId", "type": "str"}, + "provider_type": {"key": "providerType", "type": "str"}, } - def __init__( - self, - *, - friendly_name: Optional[str] = None, - ip_address: Optional[str] = None, - process_server_id: Optional[str] = None, - port: Optional[str] = None, - run_as_account_id: Optional[str] = None, - **kwargs: Any - ) -> None: + def __init__(self, *, provider_type: Optional[str] = None, **kwargs: Any) -> None: """ - :keyword friendly_name: The friendly name of the vCenter. - :paramtype friendly_name: str - :keyword ip_address: The IP address of the vCenter to be discovered. - :paramtype ip_address: str - :keyword process_server_id: The process server Id from where the discovery is orchestrated. - :paramtype process_server_id: str - :keyword port: The port number for discovery. - :paramtype port: str - :keyword run_as_account_id: The account Id which has privileges to discover the vCenter. - :paramtype run_as_account_id: str + :keyword provider_type: The providerType to be used for fetching appliance details. + :paramtype provider_type: str """ super().__init__(**kwargs) - self.friendly_name = friendly_name - self.ip_address = ip_address - self.process_server_id = process_server_id - self.port = port - self.run_as_account_id = run_as_account_id + self.provider_type = provider_type -class AgentDetails(_serialization.Model): - """Agent details. +class ApplianceResourceDetails(_serialization.Model): + """Details of the appliance resource. Variables are only populated by the server, and will be ignored when sending a request. - :ivar agent_id: The Id of the agent running on the server. - :vartype agent_id: str - :ivar machine_id: The Id of the machine to which the agent is registered. - :vartype machine_id: str - :ivar bios_id: The machine BIOS Id. - :vartype bios_id: str - :ivar fqdn: The machine FQDN. - :vartype fqdn: str - :ivar disks: The disks. - :vartype disks: list[~azure.mgmt.recoveryservicessiterecovery.models.AgentDiskDetails] + :ivar capacity: A value indicating the total capacity of appliance resource. + :vartype capacity: int + :ivar process_utilization: A value indicating the utilization percentage by gateway agent on + appliance. + :vartype process_utilization: float + :ivar total_utilization: A value indicating the total utilization percentage for all processes + on the appliance. + :vartype total_utilization: float + :ivar status: A value indicating the status of appliance resource. + :vartype status: str """ _validation = { - "agent_id": {"readonly": True}, - "machine_id": {"readonly": True}, - "bios_id": {"readonly": True}, - "fqdn": {"readonly": True}, - "disks": {"readonly": True}, + "capacity": {"readonly": True}, + "process_utilization": {"readonly": True}, + "total_utilization": {"readonly": True}, + "status": {"readonly": True}, } _attribute_map = { - "agent_id": {"key": "agentId", "type": "str"}, - "machine_id": {"key": "machineId", "type": "str"}, - "bios_id": {"key": "biosId", "type": "str"}, - "fqdn": {"key": "fqdn", "type": "str"}, - "disks": {"key": "disks", "type": "[AgentDiskDetails]"}, + "capacity": {"key": "capacity", "type": "int"}, + "process_utilization": {"key": "processUtilization", "type": "float"}, + "total_utilization": {"key": "totalUtilization", "type": "float"}, + "status": {"key": "status", "type": "str"}, } def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.agent_id = None - self.machine_id = None - self.bios_id = None - self.fqdn = None - self.disks = None + self.capacity: Optional[int] = None + self.process_utilization: Optional[float] = None + self.total_utilization: Optional[float] = None + self.status: Optional[str] = None -class AgentDiskDetails(_serialization.Model): - """Agent disk details. +class ApplianceSpecificDetails(_serialization.Model): + """Appliance specific details. - Variables are only populated by the server, and will be ignored when sending a request. + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + InMageRcmApplianceSpecificDetails - :ivar disk_id: The disk Id. - :vartype disk_id: str - :ivar disk_name: The disk name. - :vartype disk_name: str - :ivar is_os_disk: A value indicating whether the disk is the OS disk. - :vartype is_os_disk: str - :ivar capacity_in_bytes: The disk capacity in bytes. - :vartype capacity_in_bytes: int - :ivar lun_id: The lun of disk. - :vartype lun_id: int + All required parameters must be populated in order to send to server. + + :ivar instance_type: Gets the class type. Overridden in derived classes. Required. + :vartype instance_type: str """ _validation = { - "disk_id": {"readonly": True}, - "disk_name": {"readonly": True}, - "is_os_disk": {"readonly": True}, - "capacity_in_bytes": {"readonly": True}, - "lun_id": {"readonly": True}, + "instance_type": {"required": True}, } _attribute_map = { - "disk_id": {"key": "diskId", "type": "str"}, - "disk_name": {"key": "diskName", "type": "str"}, - "is_os_disk": {"key": "isOSDisk", "type": "str"}, - "capacity_in_bytes": {"key": "capacityInBytes", "type": "int"}, - "lun_id": {"key": "lunId", "type": "int"}, + "instance_type": {"key": "instanceType", "type": "str"}, } + _subtype_map = {"instance_type": {"InMageRcm": "InMageRcmApplianceSpecificDetails"}} + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.disk_id = None - self.disk_name = None - self.is_os_disk = None - self.capacity_in_bytes = None - self.lun_id = None - + self.instance_type: Optional[str] = None -class Resource(_serialization.Model): - """Azure resource. - Variables are only populated by the server, and will be ignored when sending a request. +class ApplyClusterRecoveryPointInput(_serialization.Model): + """Input definition for apply cluster recovery point. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource Name. - :vartype name: str - :ivar type: Resource Type. - :vartype type: str - :ivar location: Resource Location. - :vartype location: str + All required parameters must be populated in order to send to server. + + :ivar properties: The properties to apply cluster recovery point input. Required. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointInputProperties """ _validation = { - "id": {"readonly": True}, - "name": {"readonly": True}, - "type": {"readonly": True}, + "properties": {"required": True}, } _attribute_map = { - "id": {"key": "id", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "ApplyClusterRecoveryPointInputProperties"}, } - def __init__(self, *, location: Optional[str] = None, **kwargs: Any) -> None: + def __init__(self, *, properties: "_models.ApplyClusterRecoveryPointInputProperties", **kwargs: Any) -> None: """ - :keyword location: Resource Location. - :paramtype location: str + :keyword properties: The properties to apply cluster recovery point input. Required. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointInputProperties """ super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location + self.properties = properties -class Alert(Resource): - """Implements the Alert class. +class ApplyClusterRecoveryPointInputProperties(_serialization.Model): + """Input definition for apply cluster recovery point properties. - Variables are only populated by the server, and will be ignored when sending a request. + All required parameters must be populated in order to send to server. - :ivar id: Resource Id. - :vartype id: str - :ivar name: Resource Name. - :vartype name: str - :ivar type: Resource Type. - :vartype type: str - :ivar location: Resource Location. - :vartype location: str - :ivar properties: Alert related data. - :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AlertProperties + :ivar cluster_recovery_point_id: The cluster recovery point id to be passed to failover to a + particular recovery point. + :vartype cluster_recovery_point_id: str + :ivar individual_node_recovery_points: The list of individual node recovery points. + :vartype individual_node_recovery_points: list[str] + :ivar provider_specific_details: The provider specific input for applying cluster recovery + point. Required. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointProviderSpecificInput """ _validation = { - "id": {"readonly": True}, - "name": {"readonly": True}, - "type": {"readonly": True}, + "provider_specific_details": {"required": True}, } _attribute_map = { - "id": {"key": "id", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "properties": {"key": "properties", "type": "AlertProperties"}, + "cluster_recovery_point_id": {"key": "clusterRecoveryPointId", "type": "str"}, + "individual_node_recovery_points": {"key": "individualNodeRecoveryPoints", "type": "[str]"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "ApplyClusterRecoveryPointProviderSpecificInput", + }, } def __init__( - self, *, location: Optional[str] = None, properties: Optional["_models.AlertProperties"] = None, **kwargs: Any + self, + *, + provider_specific_details: "_models.ApplyClusterRecoveryPointProviderSpecificInput", + cluster_recovery_point_id: Optional[str] = None, + individual_node_recovery_points: Optional[List[str]] = None, + **kwargs: Any ) -> None: """ - :keyword location: Resource Location. - :paramtype location: str - :keyword properties: Alert related data. - :paramtype properties: ~azure.mgmt.recoveryservicessiterecovery.models.AlertProperties + :keyword cluster_recovery_point_id: The cluster recovery point id to be passed to failover to a + particular recovery point. + :paramtype cluster_recovery_point_id: str + :keyword individual_node_recovery_points: The list of individual node recovery points. + :paramtype individual_node_recovery_points: list[str] + :keyword provider_specific_details: The provider specific input for applying cluster recovery + point. Required. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointProviderSpecificInput """ - super().__init__(location=location, **kwargs) - self.properties = properties + super().__init__(**kwargs) + self.cluster_recovery_point_id = cluster_recovery_point_id + self.individual_node_recovery_points = individual_node_recovery_points + self.provider_specific_details = provider_specific_details -class AlertCollection(_serialization.Model): - """Collection of alerts. +class ApplyRecoveryPointInput(_serialization.Model): + """Input to apply recovery point. - :ivar value: The list of alerts. - :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.Alert] - :ivar next_link: The value of next link. - :vartype next_link: str + All required parameters must be populated in order to send to server. + + :ivar properties: The input properties to apply recovery point. Required. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInputProperties """ + _validation = { + "properties": {"required": True}, + } + _attribute_map = { - "value": {"key": "value", "type": "[Alert]"}, - "next_link": {"key": "nextLink", "type": "str"}, + "properties": {"key": "properties", "type": "ApplyRecoveryPointInputProperties"}, } - def __init__( - self, *, value: Optional[List["_models.Alert"]] = None, next_link: Optional[str] = None, **kwargs: Any - ) -> None: + def __init__(self, *, properties: "_models.ApplyRecoveryPointInputProperties", **kwargs: Any) -> None: """ - :keyword value: The list of alerts. - :paramtype value: list[~azure.mgmt.recoveryservicessiterecovery.models.Alert] - :keyword next_link: The value of next link. - :paramtype next_link: str + :keyword properties: The input properties to apply recovery point. Required. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInputProperties """ super().__init__(**kwargs) - self.value = value - self.next_link = next_link + self.properties = properties -class AlertProperties(_serialization.Model): - """The properties of an alert. +class ApplyRecoveryPointInputProperties(_serialization.Model): + """Input properties to apply recovery point. - :ivar send_to_owners: A value indicating whether to send email to subscription administrator. - :vartype send_to_owners: str - :ivar custom_email_addresses: The custom email address for sending emails. - :vartype custom_email_addresses: list[str] - :ivar locale: The locale for the email notification. - :vartype locale: str + All required parameters must be populated in order to send to server. + + :ivar recovery_point_id: The recovery point Id. + :vartype recovery_point_id: str + :ivar provider_specific_details: Provider specific input for applying recovery point. Required. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointProviderSpecificInput """ + _validation = { + "provider_specific_details": {"required": True}, + } + _attribute_map = { - "send_to_owners": {"key": "sendToOwners", "type": "str"}, - "custom_email_addresses": {"key": "customEmailAddresses", "type": "[str]"}, - "locale": {"key": "locale", "type": "str"}, + "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "ApplyRecoveryPointProviderSpecificInput", + }, } def __init__( self, *, - send_to_owners: Optional[str] = None, - custom_email_addresses: Optional[List[str]] = None, - locale: Optional[str] = None, + provider_specific_details: "_models.ApplyRecoveryPointProviderSpecificInput", + recovery_point_id: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword send_to_owners: A value indicating whether to send email to subscription - administrator. - :paramtype send_to_owners: str - :keyword custom_email_addresses: The custom email address for sending emails. - :paramtype custom_email_addresses: list[str] - :keyword locale: The locale for the email notification. - :paramtype locale: str + :keyword recovery_point_id: The recovery point Id. + :paramtype recovery_point_id: str + :keyword provider_specific_details: Provider specific input for applying recovery point. + Required. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointProviderSpecificInput """ super().__init__(**kwargs) - self.send_to_owners = send_to_owners - self.custom_email_addresses = custom_email_addresses - self.locale = locale + self.recovery_point_id = recovery_point_id + self.provider_specific_details = provider_specific_details -class ApplianceCollection(_serialization.Model): - """Collection of appliance details. +class JobDetails(_serialization.Model): + """Job details based on specific job type. - :ivar value: The appliance details. - :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationAppliance] - :ivar next_link: The value of next link. - :vartype next_link: str + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + AsrJobDetails, ClusterFailoverJobDetails, ClusterSwitchProtectionJobDetails, + ClusterTestFailoverJobDetails, ExportJobDetails, FailoverJobDetails, + SwitchProtectionJobDetails, TestFailoverJobDetails + + All required parameters must be populated in order to send to server. + + :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible + values). Required. + :vartype instance_type: str + :ivar affected_object_details: The affected object properties like source server, source cloud, + target server, target cloud etc. based on the workflow object details. + :vartype affected_object_details: dict[str, str] """ + _validation = { + "instance_type": {"required": True}, + } + _attribute_map = { - "value": {"key": "value", "type": "[ReplicationAppliance]"}, - "next_link": {"key": "nextLink", "type": "str"}, + "instance_type": {"key": "instanceType", "type": "str"}, + "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, } - def __init__( - self, - *, - value: Optional[List["_models.ReplicationAppliance"]] = None, - next_link: Optional[str] = None, - **kwargs: Any - ) -> None: + _subtype_map = { + "instance_type": { + "AsrJobDetails": "AsrJobDetails", + "ClusterFailoverJobDetails": "ClusterFailoverJobDetails", + "ClusterSwitchProtectionJobDetails": "ClusterSwitchProtectionJobDetails", + "ClusterTestFailoverJobDetails": "ClusterTestFailoverJobDetails", + "ExportJobDetails": "ExportJobDetails", + "FailoverJobDetails": "FailoverJobDetails", + "SwitchProtectionJobDetails": "SwitchProtectionJobDetails", + "TestFailoverJobDetails": "TestFailoverJobDetails", + } + } + + def __init__(self, *, affected_object_details: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: """ - :keyword value: The appliance details. - :paramtype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationAppliance] - :keyword next_link: The value of next link. - :paramtype next_link: str + :keyword affected_object_details: The affected object properties like source server, source + cloud, target server, target cloud etc. based on the workflow object details. + :paramtype affected_object_details: dict[str, str] """ super().__init__(**kwargs) - self.value = value - self.next_link = next_link + self.instance_type: Optional[str] = None + self.affected_object_details = affected_object_details -class ApplianceMonitoringDetails(_serialization.Model): - """Appliance details of the migration item. +class AsrJobDetails(JobDetails): + """This class represents job details based on specific job type. - Variables are only populated by the server, and will be ignored when sending a request. + All required parameters must be populated in order to send to server. - :ivar cpu_details: The appliance CPU details. - :vartype cpu_details: ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails - :ivar ram_details: The appliance RAM details. - :vartype ram_details: ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails - :ivar datastore_snapshot: The appliance datastore snapshot details. - :vartype datastore_snapshot: - list[~azure.mgmt.recoveryservicessiterecovery.models.DataStoreUtilizationDetails] - :ivar disks_replication_details: The disk replication details. - :vartype disks_replication_details: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails - :ivar esxi_nfc_buffer: The ESXi NFC buffer details. - :vartype esxi_nfc_buffer: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails - :ivar network_bandwidth: The appliance network bandwidth details. - :vartype network_bandwidth: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplianceResourceDetails + :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible + values). Required. + :vartype instance_type: str + :ivar affected_object_details: The affected object properties like source server, source cloud, + target server, target cloud etc. based on the workflow object details. + :vartype affected_object_details: dict[str, str] """ _validation = { - "cpu_details": {"readonly": True}, - "ram_details": {"readonly": True}, - "datastore_snapshot": {"readonly": True}, - "disks_replication_details": {"readonly": True}, - "esxi_nfc_buffer": {"readonly": True}, - "network_bandwidth": {"readonly": True}, + "instance_type": {"required": True}, } _attribute_map = { - "cpu_details": {"key": "cpuDetails", "type": "ApplianceResourceDetails"}, - "ram_details": {"key": "ramDetails", "type": "ApplianceResourceDetails"}, - "datastore_snapshot": {"key": "datastoreSnapshot", "type": "[DataStoreUtilizationDetails]"}, - "disks_replication_details": {"key": "disksReplicationDetails", "type": "ApplianceResourceDetails"}, - "esxi_nfc_buffer": {"key": "esxiNfcBuffer", "type": "ApplianceResourceDetails"}, - "network_bandwidth": {"key": "networkBandwidth", "type": "ApplianceResourceDetails"}, + "instance_type": {"key": "instanceType", "type": "str"}, + "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, } - def __init__(self, **kwargs: Any) -> None: - """ """ - super().__init__(**kwargs) - self.cpu_details = None - self.ram_details = None - self.datastore_snapshot = None - self.disks_replication_details = None - self.esxi_nfc_buffer = None - self.network_bandwidth = None + def __init__(self, *, affected_object_details: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + """ + :keyword affected_object_details: The affected object properties like source server, source + cloud, target server, target cloud etc. based on the workflow object details. + :paramtype affected_object_details: dict[str, str] + """ + super().__init__(affected_object_details=affected_object_details, **kwargs) + self.instance_type: str = "AsrJobDetails" -class ApplianceQueryParameter(_serialization.Model): - """Query parameter to get appliance. +class ASRTask(_serialization.Model): + """Task of the Job. - :ivar provider_type: The providerType to be used for fetching appliance details. - :vartype provider_type: str + :ivar task_id: The Id. + :vartype task_id: str + :ivar name: The unique Task name. + :vartype name: str + :ivar start_time: The start time. + :vartype start_time: ~datetime.datetime + :ivar end_time: The end time. + :vartype end_time: ~datetime.datetime + :ivar allowed_actions: The state/actions applicable on this task. + :vartype allowed_actions: list[str] + :ivar friendly_name: The name. + :vartype friendly_name: str + :ivar state: The State. It is one of these values - NotStarted, InProgress, Succeeded, Failed, + Cancelled, Suspended or Other. + :vartype state: str + :ivar state_description: The description of the task state. For example - For Succeeded state, + description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped. + :vartype state_description: str + :ivar task_type: The type of task. Details in CustomDetails property depend on this type. + :vartype task_type: str + :ivar custom_details: The custom task details based on the task type. + :vartype custom_details: ~azure.mgmt.recoveryservicessiterecovery.models.TaskTypeDetails + :ivar group_task_custom_details: The custom task details based on the task type, if the task + type is GroupTaskDetails or one of the types derived from it. + :vartype group_task_custom_details: + ~azure.mgmt.recoveryservicessiterecovery.models.GroupTaskDetails + :ivar errors: The task error details. + :vartype errors: list[~azure.mgmt.recoveryservicessiterecovery.models.JobErrorDetails] """ _attribute_map = { - "provider_type": {"key": "providerType", "type": "str"}, + "task_id": {"key": "taskId", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "start_time": {"key": "startTime", "type": "iso-8601"}, + "end_time": {"key": "endTime", "type": "iso-8601"}, + "allowed_actions": {"key": "allowedActions", "type": "[str]"}, + "friendly_name": {"key": "friendlyName", "type": "str"}, + "state": {"key": "state", "type": "str"}, + "state_description": {"key": "stateDescription", "type": "str"}, + "task_type": {"key": "taskType", "type": "str"}, + "custom_details": {"key": "customDetails", "type": "TaskTypeDetails"}, + "group_task_custom_details": {"key": "groupTaskCustomDetails", "type": "GroupTaskDetails"}, + "errors": {"key": "errors", "type": "[JobErrorDetails]"}, } - def __init__(self, *, provider_type: Optional[str] = None, **kwargs: Any) -> None: + def __init__( + self, + *, + task_id: Optional[str] = None, + name: Optional[str] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + allowed_actions: Optional[List[str]] = None, + friendly_name: Optional[str] = None, + state: Optional[str] = None, + state_description: Optional[str] = None, + task_type: Optional[str] = None, + custom_details: Optional["_models.TaskTypeDetails"] = None, + group_task_custom_details: Optional["_models.GroupTaskDetails"] = None, + errors: Optional[List["_models.JobErrorDetails"]] = None, + **kwargs: Any + ) -> None: """ - :keyword provider_type: The providerType to be used for fetching appliance details. - :paramtype provider_type: str + :keyword task_id: The Id. + :paramtype task_id: str + :keyword name: The unique Task name. + :paramtype name: str + :keyword start_time: The start time. + :paramtype start_time: ~datetime.datetime + :keyword end_time: The end time. + :paramtype end_time: ~datetime.datetime + :keyword allowed_actions: The state/actions applicable on this task. + :paramtype allowed_actions: list[str] + :keyword friendly_name: The name. + :paramtype friendly_name: str + :keyword state: The State. It is one of these values - NotStarted, InProgress, Succeeded, + Failed, Cancelled, Suspended or Other. + :paramtype state: str + :keyword state_description: The description of the task state. For example - For Succeeded + state, description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped. + :paramtype state_description: str + :keyword task_type: The type of task. Details in CustomDetails property depend on this type. + :paramtype task_type: str + :keyword custom_details: The custom task details based on the task type. + :paramtype custom_details: ~azure.mgmt.recoveryservicessiterecovery.models.TaskTypeDetails + :keyword group_task_custom_details: The custom task details based on the task type, if the task + type is GroupTaskDetails or one of the types derived from it. + :paramtype group_task_custom_details: + ~azure.mgmt.recoveryservicessiterecovery.models.GroupTaskDetails + :keyword errors: The task error details. + :paramtype errors: list[~azure.mgmt.recoveryservicessiterecovery.models.JobErrorDetails] """ super().__init__(**kwargs) - self.provider_type = provider_type + self.task_id = task_id + self.name = name + self.start_time = start_time + self.end_time = end_time + self.allowed_actions = allowed_actions + self.friendly_name = friendly_name + self.state = state + self.state_description = state_description + self.task_type = task_type + self.custom_details = custom_details + self.group_task_custom_details = group_task_custom_details + self.errors = errors -class ApplianceResourceDetails(_serialization.Model): - """Details of the appliance resource. +class TaskTypeDetails(_serialization.Model): + """Task details based on specific task type. - Variables are only populated by the server, and will be ignored when sending a request. + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + AutomationRunbookTaskDetails, ConsistencyCheckTaskDetails, JobTaskDetails, + ManualActionTaskDetails, ScriptActionTaskDetails, VmNicUpdatesTaskDetails - :ivar capacity: A value indicating the total capacity of appliance resource. - :vartype capacity: int - :ivar process_utilization: A value indicating the utilization percentage by gateway agent on - appliance. - :vartype process_utilization: float - :ivar total_utilization: A value indicating the total utilization percentage for all processes - on the appliance. - :vartype total_utilization: float - :ivar status: A value indicating the status of appliance resource. - :vartype status: str + All required parameters must be populated in order to send to server. + + :ivar instance_type: The type of task details. Required. + :vartype instance_type: str """ _validation = { - "capacity": {"readonly": True}, - "process_utilization": {"readonly": True}, - "total_utilization": {"readonly": True}, - "status": {"readonly": True}, + "instance_type": {"required": True}, } _attribute_map = { - "capacity": {"key": "capacity", "type": "int"}, - "process_utilization": {"key": "processUtilization", "type": "float"}, - "total_utilization": {"key": "totalUtilization", "type": "float"}, - "status": {"key": "status", "type": "str"}, + "instance_type": {"key": "instanceType", "type": "str"}, + } + + _subtype_map = { + "instance_type": { + "AutomationRunbookTaskDetails": "AutomationRunbookTaskDetails", + "ConsistencyCheckTaskDetails": "ConsistencyCheckTaskDetails", + "JobTaskDetails": "JobTaskDetails", + "ManualActionTaskDetails": "ManualActionTaskDetails", + "ScriptActionTaskDetails": "ScriptActionTaskDetails", + "VmNicUpdatesTaskDetails": "VmNicUpdatesTaskDetails", + } } def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.capacity = None - self.process_utilization = None - self.total_utilization = None - self.status = None - + self.instance_type: Optional[str] = None -class ApplianceSpecificDetails(_serialization.Model): - """Appliance specific details. - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - InMageRcmApplianceSpecificDetails +class AutomationRunbookTaskDetails(TaskTypeDetails): + """This class represents the task details for an automation runbook. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the class type. Overridden in derived classes. Required. + :ivar instance_type: The type of task details. Required. :vartype instance_type: str + :ivar name: The recovery plan task name. + :vartype name: str + :ivar cloud_service_name: The cloud service of the automation runbook account. + :vartype cloud_service_name: str + :ivar subscription_id: The subscription Id of the automation runbook account. + :vartype subscription_id: str + :ivar account_name: The automation account name of the runbook. + :vartype account_name: str + :ivar runbook_id: The runbook Id. + :vartype runbook_id: str + :ivar runbook_name: The runbook name. + :vartype runbook_name: str + :ivar job_id: The job Id of the runbook execution. + :vartype job_id: str + :ivar job_output: The execution output of the runbook. + :vartype job_output: str + :ivar is_primary_side_script: A value indicating whether it is a primary side script or not. + :vartype is_primary_side_script: bool """ _validation = { @@ -4568,103 +5864,139 @@ class ApplianceSpecificDetails(_serialization.Model): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "cloud_service_name": {"key": "cloudServiceName", "type": "str"}, + "subscription_id": {"key": "subscriptionId", "type": "str"}, + "account_name": {"key": "accountName", "type": "str"}, + "runbook_id": {"key": "runbookId", "type": "str"}, + "runbook_name": {"key": "runbookName", "type": "str"}, + "job_id": {"key": "jobId", "type": "str"}, + "job_output": {"key": "jobOutput", "type": "str"}, + "is_primary_side_script": {"key": "isPrimarySideScript", "type": "bool"}, } - _subtype_map = {"instance_type": {"InMageRcm": "InMageRcmApplianceSpecificDetails"}} - - def __init__(self, **kwargs: Any) -> None: - """ """ + def __init__( + self, + *, + name: Optional[str] = None, + cloud_service_name: Optional[str] = None, + subscription_id: Optional[str] = None, + account_name: Optional[str] = None, + runbook_id: Optional[str] = None, + runbook_name: Optional[str] = None, + job_id: Optional[str] = None, + job_output: Optional[str] = None, + is_primary_side_script: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword name: The recovery plan task name. + :paramtype name: str + :keyword cloud_service_name: The cloud service of the automation runbook account. + :paramtype cloud_service_name: str + :keyword subscription_id: The subscription Id of the automation runbook account. + :paramtype subscription_id: str + :keyword account_name: The automation account name of the runbook. + :paramtype account_name: str + :keyword runbook_id: The runbook Id. + :paramtype runbook_id: str + :keyword runbook_name: The runbook name. + :paramtype runbook_name: str + :keyword job_id: The job Id of the runbook execution. + :paramtype job_id: str + :keyword job_output: The execution output of the runbook. + :paramtype job_output: str + :keyword is_primary_side_script: A value indicating whether it is a primary side script or not. + :paramtype is_primary_side_script: bool + """ super().__init__(**kwargs) - self.instance_type: Optional[str] = None + self.instance_type: str = "AutomationRunbookTaskDetails" + self.name = name + self.cloud_service_name = cloud_service_name + self.subscription_id = subscription_id + self.account_name = account_name + self.runbook_id = runbook_id + self.runbook_name = runbook_name + self.job_id = job_id + self.job_output = job_output + self.is_primary_side_script = is_primary_side_script -class ApplyRecoveryPointInput(_serialization.Model): - """Input to apply recovery point. +class FabricSpecificCreationInput(_serialization.Model): + """Fabric provider specific settings. - All required parameters must be populated in order to send to Azure. + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + AzureFabricCreationInput, InMageRcmFabricCreationInput, VMwareV2FabricCreationInput - :ivar properties: The input properties to apply recovery point. Required. - :vartype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInputProperties + All required parameters must be populated in order to send to server. + + :ivar instance_type: Gets the class type. Required. + :vartype instance_type: str """ _validation = { - "properties": {"required": True}, + "instance_type": {"required": True}, } _attribute_map = { - "properties": {"key": "properties", "type": "ApplyRecoveryPointInputProperties"}, + "instance_type": {"key": "instanceType", "type": "str"}, } - def __init__(self, *, properties: "_models.ApplyRecoveryPointInputProperties", **kwargs: Any) -> None: - """ - :keyword properties: The input properties to apply recovery point. Required. - :paramtype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInputProperties - """ + _subtype_map = { + "instance_type": { + "Azure": "AzureFabricCreationInput", + "InMageRcm": "InMageRcmFabricCreationInput", + "VMwareV2": "VMwareV2FabricCreationInput", + } + } + + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) - self.properties = properties + self.instance_type: Optional[str] = None -class ApplyRecoveryPointInputProperties(_serialization.Model): - """Input properties to apply recovery point. +class AzureFabricCreationInput(FabricSpecificCreationInput): + """Fabric provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar recovery_point_id: The recovery point Id. - :vartype recovery_point_id: str - :ivar provider_specific_details: Provider specific input for applying recovery point. Required. - :vartype provider_specific_details: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointProviderSpecificInput + :ivar instance_type: Gets the class type. Required. + :vartype instance_type: str + :ivar location: The Location. + :vartype location: str """ _validation = { - "provider_specific_details": {"required": True}, + "instance_type": {"required": True}, } _attribute_map = { - "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, - "provider_specific_details": { - "key": "providerSpecificDetails", - "type": "ApplyRecoveryPointProviderSpecificInput", - }, + "instance_type": {"key": "instanceType", "type": "str"}, + "location": {"key": "location", "type": "str"}, } - def __init__( - self, - *, - provider_specific_details: "_models.ApplyRecoveryPointProviderSpecificInput", - recovery_point_id: Optional[str] = None, - **kwargs: Any - ) -> None: + def __init__(self, *, location: Optional[str] = None, **kwargs: Any) -> None: """ - :keyword recovery_point_id: The recovery point Id. - :paramtype recovery_point_id: str - :keyword provider_specific_details: Provider specific input for applying recovery point. - Required. - :paramtype provider_specific_details: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointProviderSpecificInput + :keyword location: The Location. + :paramtype location: str """ super().__init__(**kwargs) - self.recovery_point_id = recovery_point_id - self.provider_specific_details = provider_specific_details + self.instance_type: str = "Azure" + self.location = location -class JobDetails(_serialization.Model): - """Job details based on specific job type. +class FabricSpecificDetails(_serialization.Model): + """Fabric specific details. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AsrJobDetails, ExportJobDetails, FailoverJobDetails, SwitchProtectionJobDetails, - TestFailoverJobDetails + AzureFabricSpecificDetails, HyperVSiteDetails, InMageRcmFabricSpecificDetails, VmmDetails, + VMwareDetails, VMwareV2FabricSpecificDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible - values). Required. + :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str - :ivar affected_object_details: The affected object properties like source server, source cloud, - target server, target cloud etc. based on the workflow object details. - :vartype affected_object_details: dict[str, str] """ _validation = { @@ -4673,41 +6005,44 @@ class JobDetails(_serialization.Model): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, } _subtype_map = { "instance_type": { - "AsrJobDetails": "AsrJobDetails", - "ExportJobDetails": "ExportJobDetails", - "FailoverJobDetails": "FailoverJobDetails", - "SwitchProtectionJobDetails": "SwitchProtectionJobDetails", - "TestFailoverJobDetails": "TestFailoverJobDetails", + "Azure": "AzureFabricSpecificDetails", + "HyperVSite": "HyperVSiteDetails", + "InMageRcm": "InMageRcmFabricSpecificDetails", + "VMM": "VmmDetails", + "VMware": "VMwareDetails", + "VMwareV2": "VMwareV2FabricSpecificDetails", } } - def __init__(self, *, affected_object_details: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: - """ - :keyword affected_object_details: The affected object properties like source server, source - cloud, target server, target cloud etc. based on the workflow object details. - :paramtype affected_object_details: dict[str, str] - """ + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) self.instance_type: Optional[str] = None - self.affected_object_details = affected_object_details -class AsrJobDetails(JobDetails): - """This class represents job details based on specific job type. +class AzureFabricSpecificDetails(FabricSpecificDetails): + """Azure Fabric Specific Details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible - values). Required. + :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str - :ivar affected_object_details: The affected object properties like source server, source cloud, - target server, target cloud etc. based on the workflow object details. - :vartype affected_object_details: dict[str, str] + :ivar location: The Location for the Azure fabric. + :vartype location: str + :ivar container_ids: The container Ids for the Azure fabric. + :vartype container_ids: list[str] + :ivar zones: The zones. + :vartype zones: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AZoneDetails] + :ivar extended_locations: The ExtendedLocations. + :vartype extended_locations: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AExtendedLocationDetails] + :ivar location_details: The location details. + :vartype location_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AFabricSpecificLocationDetails] """ _validation = { @@ -4716,139 +6051,122 @@ class AsrJobDetails(JobDetails): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "container_ids": {"key": "containerIds", "type": "[str]"}, + "zones": {"key": "zones", "type": "[A2AZoneDetails]"}, + "extended_locations": {"key": "extendedLocations", "type": "[A2AExtendedLocationDetails]"}, + "location_details": {"key": "locationDetails", "type": "[A2AFabricSpecificLocationDetails]"}, } - def __init__(self, *, affected_object_details: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: + def __init__( + self, + *, + location: Optional[str] = None, + container_ids: Optional[List[str]] = None, + zones: Optional[List["_models.A2AZoneDetails"]] = None, + extended_locations: Optional[List["_models.A2AExtendedLocationDetails"]] = None, + location_details: Optional[List["_models.A2AFabricSpecificLocationDetails"]] = None, + **kwargs: Any + ) -> None: """ - :keyword affected_object_details: The affected object properties like source server, source - cloud, target server, target cloud etc. based on the workflow object details. - :paramtype affected_object_details: dict[str, str] + :keyword location: The Location for the Azure fabric. + :paramtype location: str + :keyword container_ids: The container Ids for the Azure fabric. + :paramtype container_ids: list[str] + :keyword zones: The zones. + :paramtype zones: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AZoneDetails] + :keyword extended_locations: The ExtendedLocations. + :paramtype extended_locations: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AExtendedLocationDetails] + :keyword location_details: The location details. + :paramtype location_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.A2AFabricSpecificLocationDetails] """ - super().__init__(affected_object_details=affected_object_details, **kwargs) - self.instance_type: str = "AsrJobDetails" + super().__init__(**kwargs) + self.instance_type: str = "Azure" + self.location = location + self.container_ids = container_ids + self.zones = zones + self.extended_locations = extended_locations + self.location_details = location_details -class ASRTask(_serialization.Model): # pylint: disable=too-many-instance-attributes - """Task of the Job. +class FabricSpecificCreateNetworkMappingInput(_serialization.Model): + """Input details specific to fabrics during Network Mapping. - :ivar task_id: The Id. - :vartype task_id: str - :ivar name: The unique Task name. - :vartype name: str - :ivar start_time: The start time. - :vartype start_time: ~datetime.datetime - :ivar end_time: The end time. - :vartype end_time: ~datetime.datetime - :ivar allowed_actions: The state/actions applicable on this task. - :vartype allowed_actions: list[str] - :ivar friendly_name: The name. - :vartype friendly_name: str - :ivar state: The State. It is one of these values - NotStarted, InProgress, Succeeded, Failed, - Cancelled, Suspended or Other. - :vartype state: str - :ivar state_description: The description of the task state. For example - For Succeeded state, - description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped. - :vartype state_description: str - :ivar task_type: The type of task. Details in CustomDetails property depend on this type. - :vartype task_type: str - :ivar custom_details: The custom task details based on the task type. - :vartype custom_details: ~azure.mgmt.recoveryservicessiterecovery.models.TaskTypeDetails - :ivar group_task_custom_details: The custom task details based on the task type, if the task - type is GroupTaskDetails or one of the types derived from it. - :vartype group_task_custom_details: - ~azure.mgmt.recoveryservicessiterecovery.models.GroupTaskDetails - :ivar errors: The task error details. - :vartype errors: list[~azure.mgmt.recoveryservicessiterecovery.models.JobErrorDetails] + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + AzureToAzureCreateNetworkMappingInput, VmmToAzureCreateNetworkMappingInput, + VmmToVmmCreateNetworkMappingInput + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The instance type. Required. + :vartype instance_type: str """ + _validation = { + "instance_type": {"required": True}, + } + _attribute_map = { - "task_id": {"key": "taskId", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "start_time": {"key": "startTime", "type": "iso-8601"}, - "end_time": {"key": "endTime", "type": "iso-8601"}, - "allowed_actions": {"key": "allowedActions", "type": "[str]"}, - "friendly_name": {"key": "friendlyName", "type": "str"}, - "state": {"key": "state", "type": "str"}, - "state_description": {"key": "stateDescription", "type": "str"}, - "task_type": {"key": "taskType", "type": "str"}, - "custom_details": {"key": "customDetails", "type": "TaskTypeDetails"}, - "group_task_custom_details": {"key": "groupTaskCustomDetails", "type": "GroupTaskDetails"}, - "errors": {"key": "errors", "type": "[JobErrorDetails]"}, + "instance_type": {"key": "instanceType", "type": "str"}, } - def __init__( - self, - *, - task_id: Optional[str] = None, - name: Optional[str] = None, - start_time: Optional[datetime.datetime] = None, - end_time: Optional[datetime.datetime] = None, - allowed_actions: Optional[List[str]] = None, - friendly_name: Optional[str] = None, - state: Optional[str] = None, - state_description: Optional[str] = None, - task_type: Optional[str] = None, - custom_details: Optional["_models.TaskTypeDetails"] = None, - group_task_custom_details: Optional["_models.GroupTaskDetails"] = None, - errors: Optional[List["_models.JobErrorDetails"]] = None, - **kwargs: Any - ) -> None: - """ - :keyword task_id: The Id. - :paramtype task_id: str - :keyword name: The unique Task name. - :paramtype name: str - :keyword start_time: The start time. - :paramtype start_time: ~datetime.datetime - :keyword end_time: The end time. - :paramtype end_time: ~datetime.datetime - :keyword allowed_actions: The state/actions applicable on this task. - :paramtype allowed_actions: list[str] - :keyword friendly_name: The name. - :paramtype friendly_name: str - :keyword state: The State. It is one of these values - NotStarted, InProgress, Succeeded, - Failed, Cancelled, Suspended or Other. - :paramtype state: str - :keyword state_description: The description of the task state. For example - For Succeeded - state, description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped. - :paramtype state_description: str - :keyword task_type: The type of task. Details in CustomDetails property depend on this type. - :paramtype task_type: str - :keyword custom_details: The custom task details based on the task type. - :paramtype custom_details: ~azure.mgmt.recoveryservicessiterecovery.models.TaskTypeDetails - :keyword group_task_custom_details: The custom task details based on the task type, if the task - type is GroupTaskDetails or one of the types derived from it. - :paramtype group_task_custom_details: - ~azure.mgmt.recoveryservicessiterecovery.models.GroupTaskDetails - :keyword errors: The task error details. - :paramtype errors: list[~azure.mgmt.recoveryservicessiterecovery.models.JobErrorDetails] + _subtype_map = { + "instance_type": { + "AzureToAzure": "AzureToAzureCreateNetworkMappingInput", + "VmmToAzure": "VmmToAzureCreateNetworkMappingInput", + "VmmToVmm": "VmmToVmmCreateNetworkMappingInput", + } + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: Optional[str] = None + + +class AzureToAzureCreateNetworkMappingInput(FabricSpecificCreateNetworkMappingInput): + """Create network mappings input properties/behavior specific to Azure to Azure Network mapping. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The instance type. Required. + :vartype instance_type: str + :ivar primary_network_id: The primary azure vnet Id. Required. + :vartype primary_network_id: str + """ + + _validation = { + "instance_type": {"required": True}, + "primary_network_id": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "primary_network_id": {"key": "primaryNetworkId", "type": "str"}, + } + + def __init__(self, *, primary_network_id: str, **kwargs: Any) -> None: + """ + :keyword primary_network_id: The primary azure vnet Id. Required. + :paramtype primary_network_id: str """ super().__init__(**kwargs) - self.task_id = task_id - self.name = name - self.start_time = start_time - self.end_time = end_time - self.allowed_actions = allowed_actions - self.friendly_name = friendly_name - self.state = state - self.state_description = state_description - self.task_type = task_type - self.custom_details = custom_details - self.group_task_custom_details = group_task_custom_details - self.errors = errors + self.instance_type: str = "AzureToAzure" + self.primary_network_id = primary_network_id -class TaskTypeDetails(_serialization.Model): - """Task details based on specific task type. +class NetworkMappingFabricSpecificSettings(_serialization.Model): + """Network Mapping fabric specific settings. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AutomationRunbookTaskDetails, ConsistencyCheckTaskDetails, JobTaskDetails, - ManualActionTaskDetails, ScriptActionTaskDetails, VmNicUpdatesTaskDetails + AzureToAzureNetworkMappingSettings, VmmToAzureNetworkMappingSettings, + VmmToVmmNetworkMappingSettings - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The type of task details. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str """ @@ -4862,12 +6180,9 @@ class TaskTypeDetails(_serialization.Model): _subtype_map = { "instance_type": { - "AutomationRunbookTaskDetails": "AutomationRunbookTaskDetails", - "ConsistencyCheckTaskDetails": "ConsistencyCheckTaskDetails", - "JobTaskDetails": "JobTaskDetails", - "ManualActionTaskDetails": "ManualActionTaskDetails", - "ScriptActionTaskDetails": "ScriptActionTaskDetails", - "VmNicUpdatesTaskDetails": "VmNicUpdatesTaskDetails", + "AzureToAzure": "AzureToAzureNetworkMappingSettings", + "VmmToAzure": "VmmToAzureNetworkMappingSettings", + "VmmToVmm": "VmmToVmmNetworkMappingSettings", } } @@ -4877,31 +6192,17 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class AutomationRunbookTaskDetails(TaskTypeDetails): - """This class represents the task details for an automation runbook. +class AzureToAzureNetworkMappingSettings(NetworkMappingFabricSpecificSettings): + """A2A Network Mapping fabric specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The type of task details. Required. + :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str - :ivar name: The recovery plan task name. - :vartype name: str - :ivar cloud_service_name: The cloud service of the automation runbook account. - :vartype cloud_service_name: str - :ivar subscription_id: The subscription Id of the automation runbook account. - :vartype subscription_id: str - :ivar account_name: The automation account name of the runbook. - :vartype account_name: str - :ivar runbook_id: The runbook Id. - :vartype runbook_id: str - :ivar runbook_name: The runbook name. - :vartype runbook_name: str - :ivar job_id: The job Id of the runbook execution. - :vartype job_id: str - :ivar job_output: The execution output of the runbook. - :vartype job_output: str - :ivar is_primary_side_script: A value indicating whether it is a primary side script or not. - :vartype is_primary_side_script: bool + :ivar primary_fabric_location: The primary fabric location. + :vartype primary_fabric_location: str + :ivar recovery_fabric_location: The recovery fabric location. + :vartype recovery_fabric_location: str """ _validation = { @@ -4910,73 +6211,39 @@ class AutomationRunbookTaskDetails(TaskTypeDetails): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "name": {"key": "name", "type": "str"}, - "cloud_service_name": {"key": "cloudServiceName", "type": "str"}, - "subscription_id": {"key": "subscriptionId", "type": "str"}, - "account_name": {"key": "accountName", "type": "str"}, - "runbook_id": {"key": "runbookId", "type": "str"}, - "runbook_name": {"key": "runbookName", "type": "str"}, - "job_id": {"key": "jobId", "type": "str"}, - "job_output": {"key": "jobOutput", "type": "str"}, - "is_primary_side_script": {"key": "isPrimarySideScript", "type": "bool"}, + "primary_fabric_location": {"key": "primaryFabricLocation", "type": "str"}, + "recovery_fabric_location": {"key": "recoveryFabricLocation", "type": "str"}, } def __init__( self, *, - name: Optional[str] = None, - cloud_service_name: Optional[str] = None, - subscription_id: Optional[str] = None, - account_name: Optional[str] = None, - runbook_id: Optional[str] = None, - runbook_name: Optional[str] = None, - job_id: Optional[str] = None, - job_output: Optional[str] = None, - is_primary_side_script: Optional[bool] = None, + primary_fabric_location: Optional[str] = None, + recovery_fabric_location: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword name: The recovery plan task name. - :paramtype name: str - :keyword cloud_service_name: The cloud service of the automation runbook account. - :paramtype cloud_service_name: str - :keyword subscription_id: The subscription Id of the automation runbook account. - :paramtype subscription_id: str - :keyword account_name: The automation account name of the runbook. - :paramtype account_name: str - :keyword runbook_id: The runbook Id. - :paramtype runbook_id: str - :keyword runbook_name: The runbook name. - :paramtype runbook_name: str - :keyword job_id: The job Id of the runbook execution. - :paramtype job_id: str - :keyword job_output: The execution output of the runbook. - :paramtype job_output: str - :keyword is_primary_side_script: A value indicating whether it is a primary side script or not. - :paramtype is_primary_side_script: bool + :keyword primary_fabric_location: The primary fabric location. + :paramtype primary_fabric_location: str + :keyword recovery_fabric_location: The recovery fabric location. + :paramtype recovery_fabric_location: str """ super().__init__(**kwargs) - self.instance_type: str = "AutomationRunbookTaskDetails" - self.name = name - self.cloud_service_name = cloud_service_name - self.subscription_id = subscription_id - self.account_name = account_name - self.runbook_id = runbook_id - self.runbook_name = runbook_name - self.job_id = job_id - self.job_output = job_output - self.is_primary_side_script = is_primary_side_script + self.instance_type: str = "AzureToAzure" + self.primary_fabric_location = primary_fabric_location + self.recovery_fabric_location = recovery_fabric_location -class FabricSpecificCreationInput(_serialization.Model): - """Fabric provider specific settings. +class FabricSpecificUpdateNetworkMappingInput(_serialization.Model): + """Input details specific to fabrics during Network Mapping. You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AzureFabricCreationInput, InMageRcmFabricCreationInput, VMwareV2FabricCreationInput + AzureToAzureUpdateNetworkMappingInput, VmmToAzureUpdateNetworkMappingInput, + VmmToVmmUpdateNetworkMappingInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the class type. Required. + :ivar instance_type: The instance type. Required. :vartype instance_type: str """ @@ -4990,9 +6257,9 @@ class FabricSpecificCreationInput(_serialization.Model): _subtype_map = { "instance_type": { - "Azure": "AzureFabricCreationInput", - "InMageRcm": "InMageRcmFabricCreationInput", - "VMwareV2": "VMwareV2FabricCreationInput", + "AzureToAzure": "AzureToAzureUpdateNetworkMappingInput", + "VmmToAzure": "VmmToAzureUpdateNetworkMappingInput", + "VmmToVmm": "VmmToVmmUpdateNetworkMappingInput", } } @@ -5002,15 +6269,15 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class AzureFabricCreationInput(FabricSpecificCreationInput): - """Fabric provider specific settings. +class AzureToAzureUpdateNetworkMappingInput(FabricSpecificUpdateNetworkMappingInput): + """Updates network mappings input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the class type. Required. + :ivar instance_type: The instance type. Required. :vartype instance_type: str - :ivar location: The Location. - :vartype location: str + :ivar primary_network_id: The primary azure vnet Id. + :vartype primary_network_id: str """ _validation = { @@ -5019,76 +6286,153 @@ class AzureFabricCreationInput(FabricSpecificCreationInput): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "location": {"key": "location", "type": "str"}, + "primary_network_id": {"key": "primaryNetworkId", "type": "str"}, } - def __init__(self, *, location: Optional[str] = None, **kwargs: Any) -> None: + def __init__(self, *, primary_network_id: Optional[str] = None, **kwargs: Any) -> None: """ - :keyword location: The Location. - :paramtype location: str + :keyword primary_network_id: The primary azure vnet Id. + :paramtype primary_network_id: str """ super().__init__(**kwargs) - self.instance_type: str = "Azure" - self.location = location - - -class FabricSpecificDetails(_serialization.Model): - """Fabric specific details. + self.instance_type: str = "AzureToAzure" + self.primary_network_id = primary_network_id - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AzureFabricSpecificDetails, HyperVSiteDetails, InMageRcmFabricSpecificDetails, VmmDetails, - VMwareDetails, VMwareV2FabricSpecificDetails - All required parameters must be populated in order to send to Azure. +class AzureToAzureVmSyncedConfigDetails(_serialization.Model): + """Azure to Azure VM synced configuration details. - :ivar instance_type: Gets the class type. Overridden in derived classes. Required. - :vartype instance_type: str + :ivar tags: The Azure VM tags. + :vartype tags: dict[str, str] + :ivar input_endpoints: The Azure VM input endpoints. + :vartype input_endpoints: list[~azure.mgmt.recoveryservicessiterecovery.models.InputEndpoint] """ - _validation = { - "instance_type": {"required": True}, - } - _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, + "tags": {"key": "tags", "type": "{str}"}, + "input_endpoints": {"key": "inputEndpoints", "type": "[InputEndpoint]"}, } - _subtype_map = { - "instance_type": { - "Azure": "AzureFabricSpecificDetails", - "HyperVSite": "HyperVSiteDetails", - "InMageRcm": "InMageRcmFabricSpecificDetails", - "VMM": "VmmDetails", - "VMware": "VMwareDetails", - "VMwareV2": "VMwareV2FabricSpecificDetails", - } + def __init__( + self, + *, + tags: Optional[Dict[str, str]] = None, + input_endpoints: Optional[List["_models.InputEndpoint"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: The Azure VM tags. + :paramtype tags: dict[str, str] + :keyword input_endpoints: The Azure VM input endpoints. + :paramtype input_endpoints: list[~azure.mgmt.recoveryservicessiterecovery.models.InputEndpoint] + """ + super().__init__(**kwargs) + self.tags = tags + self.input_endpoints = input_endpoints + + +class AzureVmDiskDetails(_serialization.Model): + """Disk details for E2A provider. + + :ivar vhd_type: VHD type. + :vartype vhd_type: str + :ivar vhd_id: The VHD id. + :vartype vhd_id: str + :ivar disk_id: The disk resource id. + :vartype disk_id: str + :ivar vhd_name: VHD name. + :vartype vhd_name: str + :ivar max_size_mb: Max side in MB. + :vartype max_size_mb: str + :ivar target_disk_location: Blob uri of the Azure disk. + :vartype target_disk_location: str + :ivar target_disk_name: The target Azure disk name. + :vartype target_disk_name: str + :ivar lun_id: Ordinal\\LunId of the disk for the Azure VM. + :vartype lun_id: str + :ivar disk_encryption_set_id: The DiskEncryptionSet ARM ID. + :vartype disk_encryption_set_id: str + :ivar custom_target_disk_name: The custom target Azure disk name. + :vartype custom_target_disk_name: str + """ + + _attribute_map = { + "vhd_type": {"key": "vhdType", "type": "str"}, + "vhd_id": {"key": "vhdId", "type": "str"}, + "disk_id": {"key": "diskId", "type": "str"}, + "vhd_name": {"key": "vhdName", "type": "str"}, + "max_size_mb": {"key": "maxSizeMB", "type": "str"}, + "target_disk_location": {"key": "targetDiskLocation", "type": "str"}, + "target_disk_name": {"key": "targetDiskName", "type": "str"}, + "lun_id": {"key": "lunId", "type": "str"}, + "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, + "custom_target_disk_name": {"key": "customTargetDiskName", "type": "str"}, } - def __init__(self, **kwargs: Any) -> None: - """ """ + def __init__( + self, + *, + vhd_type: Optional[str] = None, + vhd_id: Optional[str] = None, + disk_id: Optional[str] = None, + vhd_name: Optional[str] = None, + max_size_mb: Optional[str] = None, + target_disk_location: Optional[str] = None, + target_disk_name: Optional[str] = None, + lun_id: Optional[str] = None, + disk_encryption_set_id: Optional[str] = None, + custom_target_disk_name: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword vhd_type: VHD type. + :paramtype vhd_type: str + :keyword vhd_id: The VHD id. + :paramtype vhd_id: str + :keyword disk_id: The disk resource id. + :paramtype disk_id: str + :keyword vhd_name: VHD name. + :paramtype vhd_name: str + :keyword max_size_mb: Max side in MB. + :paramtype max_size_mb: str + :keyword target_disk_location: Blob uri of the Azure disk. + :paramtype target_disk_location: str + :keyword target_disk_name: The target Azure disk name. + :paramtype target_disk_name: str + :keyword lun_id: Ordinal\\LunId of the disk for the Azure VM. + :paramtype lun_id: str + :keyword disk_encryption_set_id: The DiskEncryptionSet ARM ID. + :paramtype disk_encryption_set_id: str + :keyword custom_target_disk_name: The custom target Azure disk name. + :paramtype custom_target_disk_name: str + """ super().__init__(**kwargs) - self.instance_type: Optional[str] = None + self.vhd_type = vhd_type + self.vhd_id = vhd_id + self.disk_id = disk_id + self.vhd_name = vhd_name + self.max_size_mb = max_size_mb + self.target_disk_location = target_disk_location + self.target_disk_name = target_disk_name + self.lun_id = lun_id + self.disk_encryption_set_id = disk_encryption_set_id + self.custom_target_disk_name = custom_target_disk_name -class AzureFabricSpecificDetails(FabricSpecificDetails): - """Azure Fabric Specific Details. +class ClusterFailoverJobDetails(JobDetails): + """This class represents the details for a failover job of cluster. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the class type. Overridden in derived classes. Required. + :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible + values). Required. :vartype instance_type: str - :ivar location: The Location for the Azure fabric. - :vartype location: str - :ivar container_ids: The container Ids for the Azure fabric. - :vartype container_ids: list[str] - :ivar zones: The zones. - :vartype zones: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AZoneDetails] - :ivar extended_locations: The ExtendedLocations. - :vartype extended_locations: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AExtendedLocationDetails] - :ivar location_details: The location details. - :vartype location_details: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AFabricSpecificLocationDetails] + :ivar affected_object_details: The affected object properties like source server, source cloud, + target server, target cloud etc. based on the workflow object details. + :vartype affected_object_details: dict[str, str] + :ivar protected_item_details: The test VM details. + :vartype protected_item_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.FailoverReplicationProtectedItemDetails] """ _validation = { @@ -5097,158 +6441,171 @@ class AzureFabricSpecificDetails(FabricSpecificDetails): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "container_ids": {"key": "containerIds", "type": "[str]"}, - "zones": {"key": "zones", "type": "[A2AZoneDetails]"}, - "extended_locations": {"key": "extendedLocations", "type": "[A2AExtendedLocationDetails]"}, - "location_details": {"key": "locationDetails", "type": "[A2AFabricSpecificLocationDetails]"}, + "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, + "protected_item_details": {"key": "protectedItemDetails", "type": "[FailoverReplicationProtectedItemDetails]"}, } def __init__( self, *, - location: Optional[str] = None, - container_ids: Optional[List[str]] = None, - zones: Optional[List["_models.A2AZoneDetails"]] = None, - extended_locations: Optional[List["_models.A2AExtendedLocationDetails"]] = None, - location_details: Optional[List["_models.A2AFabricSpecificLocationDetails"]] = None, + affected_object_details: Optional[Dict[str, str]] = None, + protected_item_details: Optional[List["_models.FailoverReplicationProtectedItemDetails"]] = None, **kwargs: Any ) -> None: """ - :keyword location: The Location for the Azure fabric. - :paramtype location: str - :keyword container_ids: The container Ids for the Azure fabric. - :paramtype container_ids: list[str] - :keyword zones: The zones. - :paramtype zones: list[~azure.mgmt.recoveryservicessiterecovery.models.A2AZoneDetails] - :keyword extended_locations: The ExtendedLocations. - :paramtype extended_locations: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AExtendedLocationDetails] - :keyword location_details: The location details. - :paramtype location_details: - list[~azure.mgmt.recoveryservicessiterecovery.models.A2AFabricSpecificLocationDetails] + :keyword affected_object_details: The affected object properties like source server, source + cloud, target server, target cloud etc. based on the workflow object details. + :paramtype affected_object_details: dict[str, str] + :keyword protected_item_details: The test VM details. + :paramtype protected_item_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.FailoverReplicationProtectedItemDetails] """ - super().__init__(**kwargs) - self.instance_type: str = "Azure" - self.location = location - self.container_ids = container_ids - self.zones = zones - self.extended_locations = extended_locations - self.location_details = location_details - - -class FabricSpecificCreateNetworkMappingInput(_serialization.Model): - """Input details specific to fabrics during Network Mapping. + super().__init__(affected_object_details=affected_object_details, **kwargs) + self.instance_type: str = "ClusterFailoverJobDetails" + self.protected_item_details = protected_item_details - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AzureToAzureCreateNetworkMappingInput, VmmToAzureCreateNetworkMappingInput, - VmmToVmmCreateNetworkMappingInput - All required parameters must be populated in order to send to Azure. +class ClusterRecoveryPoint(_serialization.Model): + """Recovery point. - :ivar instance_type: The instance type. Required. - :vartype instance_type: str + :ivar id: The recovery point Id. + :vartype id: str + :ivar name: The name of the recovery point. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar properties: The recovery point properties. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPointProperties """ - _validation = { - "instance_type": {"required": True}, - } - _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, - } - - _subtype_map = { - "instance_type": { - "AzureToAzure": "AzureToAzureCreateNetworkMappingInput", - "VmmToAzure": "VmmToAzureCreateNetworkMappingInput", - "VmmToVmm": "VmmToVmmCreateNetworkMappingInput", - } + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "properties": {"key": "properties", "type": "ClusterRecoveryPointProperties"}, } - def __init__(self, **kwargs: Any) -> None: - """ """ + def __init__( + self, + *, + id: Optional[str] = None, # pylint: disable=redefined-builtin + name: Optional[str] = None, + type: Optional[str] = None, + properties: Optional["_models.ClusterRecoveryPointProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword id: The recovery point Id. + :paramtype id: str + :keyword name: The name of the recovery point. + :paramtype name: str + :keyword type: The resource type. + :paramtype type: str + :keyword properties: The recovery point properties. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPointProperties + """ super().__init__(**kwargs) - self.instance_type: Optional[str] = None - + self.id = id + self.name = name + self.type = type + self.properties = properties -class AzureToAzureCreateNetworkMappingInput(FabricSpecificCreateNetworkMappingInput): - """Create network mappings input properties/behavior specific to Azure to Azure Network mapping. - All required parameters must be populated in order to send to Azure. +class ClusterRecoveryPointCollection(_serialization.Model): + """Collection of cluster recovery point details. - :ivar instance_type: The instance type. Required. - :vartype instance_type: str - :ivar primary_network_id: The primary azure vnet Id. Required. - :vartype primary_network_id: str + :ivar value: The cluster recovery point details. + :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPoint] + :ivar next_link: The value of next link. + :vartype next_link: str """ - _validation = { - "instance_type": {"required": True}, - "primary_network_id": {"required": True}, - } - _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, - "primary_network_id": {"key": "primaryNetworkId", "type": "str"}, + "value": {"key": "value", "type": "[ClusterRecoveryPoint]"}, + "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, *, primary_network_id: str, **kwargs: Any) -> None: + def __init__( + self, + *, + value: Optional[List["_models.ClusterRecoveryPoint"]] = None, + next_link: Optional[str] = None, + **kwargs: Any + ) -> None: """ - :keyword primary_network_id: The primary azure vnet Id. Required. - :paramtype primary_network_id: str + :keyword value: The cluster recovery point details. + :paramtype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPoint] + :keyword next_link: The value of next link. + :paramtype next_link: str """ super().__init__(**kwargs) - self.instance_type: str = "AzureToAzure" - self.primary_network_id = primary_network_id - - -class NetworkMappingFabricSpecificSettings(_serialization.Model): - """Network Mapping fabric specific settings. + self.value = value + self.next_link = next_link - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AzureToAzureNetworkMappingSettings, VmmToAzureNetworkMappingSettings, - VmmToVmmNetworkMappingSettings - All required parameters must be populated in order to send to Azure. +class ClusterRecoveryPointProperties(_serialization.Model): + """Cluster recovery point properties. - :ivar instance_type: Gets the Instance type. Required. - :vartype instance_type: str + :ivar recovery_point_time: The recovery point time. + :vartype recovery_point_time: ~datetime.datetime + :ivar recovery_point_type: The recovery point type. Known values are: "NotSpecified", + "ApplicationConsistent", and "CrashConsistent". + :vartype recovery_point_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPointType + :ivar provider_specific_details: The provider specific details for the recovery point. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterProviderSpecificRecoveryPointDetails """ - _validation = { - "instance_type": {"required": True}, - } - _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, - } - - _subtype_map = { - "instance_type": { - "AzureToAzure": "AzureToAzureNetworkMappingSettings", - "VmmToAzure": "VmmToAzureNetworkMappingSettings", - "VmmToVmm": "VmmToVmmNetworkMappingSettings", - } + "recovery_point_time": {"key": "recoveryPointTime", "type": "iso-8601"}, + "recovery_point_type": {"key": "recoveryPointType", "type": "str"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "ClusterProviderSpecificRecoveryPointDetails", + }, } - def __init__(self, **kwargs: Any) -> None: - """ """ + def __init__( + self, + *, + recovery_point_time: Optional[datetime.datetime] = None, + recovery_point_type: Optional[Union[str, "_models.ClusterRecoveryPointType"]] = None, + provider_specific_details: Optional["_models.ClusterProviderSpecificRecoveryPointDetails"] = None, + **kwargs: Any + ) -> None: + """ + :keyword recovery_point_time: The recovery point time. + :paramtype recovery_point_time: ~datetime.datetime + :keyword recovery_point_type: The recovery point type. Known values are: "NotSpecified", + "ApplicationConsistent", and "CrashConsistent". + :paramtype recovery_point_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPointType + :keyword provider_specific_details: The provider specific details for the recovery point. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterProviderSpecificRecoveryPointDetails + """ super().__init__(**kwargs) - self.instance_type: Optional[str] = None + self.recovery_point_time = recovery_point_time + self.recovery_point_type = recovery_point_type + self.provider_specific_details = provider_specific_details -class AzureToAzureNetworkMappingSettings(NetworkMappingFabricSpecificSettings): - """A2A Network Mapping fabric specific settings. +class ClusterSwitchProtectionJobDetails(JobDetails): + """This class represents details for switch cluster protection job. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: Gets the Instance type. Required. + :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible + values). Required. :vartype instance_type: str - :ivar primary_fabric_location: The primary fabric location. - :vartype primary_fabric_location: str - :ivar recovery_fabric_location: The recovery fabric location. - :vartype recovery_fabric_location: str + :ivar affected_object_details: The affected object properties like source server, source cloud, + target server, target cloud etc. based on the workflow object details. + :vartype affected_object_details: dict[str, str] + :ivar new_replication_protection_cluster_id: ARM Id of the new replication protection cluster. + :vartype new_replication_protection_cluster_id: str """ _validation = { @@ -5257,212 +6614,316 @@ class AzureToAzureNetworkMappingSettings(NetworkMappingFabricSpecificSettings): _attribute_map = { "instance_type": {"key": "instanceType", "type": "str"}, - "primary_fabric_location": {"key": "primaryFabricLocation", "type": "str"}, - "recovery_fabric_location": {"key": "recoveryFabricLocation", "type": "str"}, + "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, + "new_replication_protection_cluster_id": {"key": "newReplicationProtectionClusterId", "type": "str"}, } def __init__( self, *, - primary_fabric_location: Optional[str] = None, - recovery_fabric_location: Optional[str] = None, + affected_object_details: Optional[Dict[str, str]] = None, + new_replication_protection_cluster_id: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword primary_fabric_location: The primary fabric location. - :paramtype primary_fabric_location: str - :keyword recovery_fabric_location: The recovery fabric location. - :paramtype recovery_fabric_location: str + :keyword affected_object_details: The affected object properties like source server, source + cloud, target server, target cloud etc. based on the workflow object details. + :paramtype affected_object_details: dict[str, str] + :keyword new_replication_protection_cluster_id: ARM Id of the new replication protection + cluster. + :paramtype new_replication_protection_cluster_id: str """ - super().__init__(**kwargs) - self.instance_type: str = "AzureToAzure" - self.primary_fabric_location = primary_fabric_location - self.recovery_fabric_location = recovery_fabric_location - + super().__init__(affected_object_details=affected_object_details, **kwargs) + self.instance_type: str = "ClusterSwitchProtectionJobDetails" + self.new_replication_protection_cluster_id = new_replication_protection_cluster_id -class FabricSpecificUpdateNetworkMappingInput(_serialization.Model): - """Input details specific to fabrics during Network Mapping. - You probably want to use the sub-classes and not this class directly. Known sub-classes are: - AzureToAzureUpdateNetworkMappingInput, VmmToAzureUpdateNetworkMappingInput, - VmmToVmmUpdateNetworkMappingInput +class ClusterTestFailoverCleanupInput(_serialization.Model): + """Input definition for test failover cleanup for cluster. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The instance type. Required. - :vartype instance_type: str + :ivar properties: Test failover cleanup input properties. Required. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverCleanupInputProperties """ _validation = { - "instance_type": {"required": True}, + "properties": {"required": True}, } _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, + "properties": {"key": "properties", "type": "ClusterTestFailoverCleanupInputProperties"}, } - _subtype_map = { - "instance_type": { - "AzureToAzure": "AzureToAzureUpdateNetworkMappingInput", - "VmmToAzure": "VmmToAzureUpdateNetworkMappingInput", - "VmmToVmm": "VmmToVmmUpdateNetworkMappingInput", - } + def __init__(self, *, properties: "_models.ClusterTestFailoverCleanupInputProperties", **kwargs: Any) -> None: + """ + :keyword properties: Test failover cleanup input properties. Required. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverCleanupInputProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class ClusterTestFailoverCleanupInputProperties(_serialization.Model): # pylint: disable=name-too-long + """Input definition for test failover cleanup input properties. + + :ivar comments: Test failover cleanup comments. + :vartype comments: str + """ + + _validation = { + "comments": {"max_length": 1024}, } - def __init__(self, **kwargs: Any) -> None: - """ """ + _attribute_map = { + "comments": {"key": "comments", "type": "str"}, + } + + def __init__(self, *, comments: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword comments: Test failover cleanup comments. + :paramtype comments: str + """ super().__init__(**kwargs) - self.instance_type: Optional[str] = None + self.comments = comments -class AzureToAzureUpdateNetworkMappingInput(FabricSpecificUpdateNetworkMappingInput): - """Updates network mappings input. +class ClusterTestFailoverInput(_serialization.Model): + """Input definition for test cluster failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. - :ivar instance_type: The instance type. Required. - :vartype instance_type: str - :ivar primary_network_id: The primary azure vnet Id. - :vartype primary_network_id: str + :ivar properties: Test failover input properties. Required. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverInputProperties """ _validation = { - "instance_type": {"required": True}, + "properties": {"required": True}, } _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, - "primary_network_id": {"key": "primaryNetworkId", "type": "str"}, + "properties": {"key": "properties", "type": "ClusterTestFailoverInputProperties"}, } - def __init__(self, *, primary_network_id: Optional[str] = None, **kwargs: Any) -> None: + def __init__(self, *, properties: "_models.ClusterTestFailoverInputProperties", **kwargs: Any) -> None: """ - :keyword primary_network_id: The primary azure vnet Id. - :paramtype primary_network_id: str + :keyword properties: Test failover input properties. Required. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverInputProperties """ super().__init__(**kwargs) - self.instance_type: str = "AzureToAzure" - self.primary_network_id = primary_network_id + self.properties = properties -class AzureToAzureVmSyncedConfigDetails(_serialization.Model): - """Azure to Azure VM synced configuration details. +class ClusterTestFailoverInputProperties(_serialization.Model): + """Input definition for test failover input properties. - :ivar tags: The Azure VM tags. - :vartype tags: dict[str, str] - :ivar input_endpoints: The Azure VM input endpoints. - :vartype input_endpoints: list[~azure.mgmt.recoveryservicessiterecovery.models.InputEndpoint] + :ivar failover_direction: Failover direction. Known values are: "PrimaryToRecovery" and + "RecoveryToPrimary". + :vartype failover_direction: str or + ~azure.mgmt.recoveryservicessiterecovery.models.FailoverDirection + :ivar network_type: Network type to be used for test failover. + :vartype network_type: str + :ivar network_id: The id of the network to be used for test failover. + :vartype network_id: str + :ivar provider_specific_details: Provider specific settings. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverProviderSpecificInput """ _attribute_map = { - "tags": {"key": "tags", "type": "{str}"}, - "input_endpoints": {"key": "inputEndpoints", "type": "[InputEndpoint]"}, + "failover_direction": {"key": "failoverDirection", "type": "str"}, + "network_type": {"key": "networkType", "type": "str"}, + "network_id": {"key": "networkId", "type": "str"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "ClusterTestFailoverProviderSpecificInput", + }, } def __init__( self, *, - tags: Optional[Dict[str, str]] = None, - input_endpoints: Optional[List["_models.InputEndpoint"]] = None, + failover_direction: Optional[Union[str, "_models.FailoverDirection"]] = None, + network_type: Optional[str] = None, + network_id: Optional[str] = None, + provider_specific_details: Optional["_models.ClusterTestFailoverProviderSpecificInput"] = None, **kwargs: Any ) -> None: """ - :keyword tags: The Azure VM tags. - :paramtype tags: dict[str, str] - :keyword input_endpoints: The Azure VM input endpoints. - :paramtype input_endpoints: list[~azure.mgmt.recoveryservicessiterecovery.models.InputEndpoint] + :keyword failover_direction: Failover direction. Known values are: "PrimaryToRecovery" and + "RecoveryToPrimary". + :paramtype failover_direction: str or + ~azure.mgmt.recoveryservicessiterecovery.models.FailoverDirection + :keyword network_type: Network type to be used for test failover. + :paramtype network_type: str + :keyword network_id: The id of the network to be used for test failover. + :paramtype network_id: str + :keyword provider_specific_details: Provider specific settings. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverProviderSpecificInput """ super().__init__(**kwargs) - self.tags = tags - self.input_endpoints = input_endpoints + self.failover_direction = failover_direction + self.network_type = network_type + self.network_id = network_id + self.provider_specific_details = provider_specific_details -class AzureVmDiskDetails(_serialization.Model): - """Disk details for E2A provider. +class ClusterTestFailoverJobDetails(JobDetails): + """This class represents the details for a test failover job of cluster. - :ivar vhd_type: VHD type. - :vartype vhd_type: str - :ivar vhd_id: The VHD id. - :vartype vhd_id: str - :ivar disk_id: The disk resource id. - :vartype disk_id: str - :ivar vhd_name: VHD name. - :vartype vhd_name: str - :ivar max_size_mb: Max side in MB. - :vartype max_size_mb: str - :ivar target_disk_location: Blob uri of the Azure disk. - :vartype target_disk_location: str - :ivar target_disk_name: The target Azure disk name. - :vartype target_disk_name: str - :ivar lun_id: Ordinal\LunId of the disk for the Azure VM. - :vartype lun_id: str - :ivar disk_encryption_set_id: The DiskEncryptionSet ARM ID. - :vartype disk_encryption_set_id: str - :ivar custom_target_disk_name: The custom target Azure disk name. - :vartype custom_target_disk_name: str + All required parameters must be populated in order to send to server. + + :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible + values). Required. + :vartype instance_type: str + :ivar affected_object_details: The affected object properties like source server, source cloud, + target server, target cloud etc. based on the workflow object details. + :vartype affected_object_details: dict[str, str] + :ivar test_failover_status: The test failover status. + :vartype test_failover_status: str + :ivar comments: The test failover comments. + :vartype comments: str + :ivar network_name: The test network name. + :vartype network_name: str + :ivar network_friendly_name: The test network friendly name. + :vartype network_friendly_name: str + :ivar network_type: The test network type (see TestFailoverInput enum for possible values). + :vartype network_type: str + :ivar protected_item_details: The test VM details. + :vartype protected_item_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.FailoverReplicationProtectedItemDetails] + """ + + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "affected_object_details": {"key": "affectedObjectDetails", "type": "{str}"}, + "test_failover_status": {"key": "testFailoverStatus", "type": "str"}, + "comments": {"key": "comments", "type": "str"}, + "network_name": {"key": "networkName", "type": "str"}, + "network_friendly_name": {"key": "networkFriendlyName", "type": "str"}, + "network_type": {"key": "networkType", "type": "str"}, + "protected_item_details": {"key": "protectedItemDetails", "type": "[FailoverReplicationProtectedItemDetails]"}, + } + + def __init__( + self, + *, + affected_object_details: Optional[Dict[str, str]] = None, + test_failover_status: Optional[str] = None, + comments: Optional[str] = None, + network_name: Optional[str] = None, + network_friendly_name: Optional[str] = None, + network_type: Optional[str] = None, + protected_item_details: Optional[List["_models.FailoverReplicationProtectedItemDetails"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword affected_object_details: The affected object properties like source server, source + cloud, target server, target cloud etc. based on the workflow object details. + :paramtype affected_object_details: dict[str, str] + :keyword test_failover_status: The test failover status. + :paramtype test_failover_status: str + :keyword comments: The test failover comments. + :paramtype comments: str + :keyword network_name: The test network name. + :paramtype network_name: str + :keyword network_friendly_name: The test network friendly name. + :paramtype network_friendly_name: str + :keyword network_type: The test network type (see TestFailoverInput enum for possible values). + :paramtype network_type: str + :keyword protected_item_details: The test VM details. + :paramtype protected_item_details: + list[~azure.mgmt.recoveryservicessiterecovery.models.FailoverReplicationProtectedItemDetails] + """ + super().__init__(affected_object_details=affected_object_details, **kwargs) + self.instance_type: str = "ClusterTestFailoverJobDetails" + self.test_failover_status = test_failover_status + self.comments = comments + self.network_name = network_name + self.network_friendly_name = network_friendly_name + self.network_type = network_type + self.protected_item_details = protected_item_details + + +class ClusterUnplannedFailoverInput(_serialization.Model): + """Input definition for unplanned cluster failover. + + All required parameters must be populated in order to send to server. + + :ivar properties: Unplanned failover input properties. Required. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverInputProperties + """ + + _validation = { + "properties": {"required": True}, + } + + _attribute_map = { + "properties": {"key": "properties", "type": "ClusterUnplannedFailoverInputProperties"}, + } + + def __init__(self, *, properties: "_models.ClusterUnplannedFailoverInputProperties", **kwargs: Any) -> None: + """ + :keyword properties: Unplanned failover input properties. Required. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverInputProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class ClusterUnplannedFailoverInputProperties(_serialization.Model): + """Input definition for unplanned failover input properties. + + :ivar failover_direction: Failover direction. + :vartype failover_direction: str + :ivar source_site_operations: Source site operations status. + :vartype source_site_operations: str + :ivar provider_specific_details: Provider specific settings. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverProviderSpecificInput """ _attribute_map = { - "vhd_type": {"key": "vhdType", "type": "str"}, - "vhd_id": {"key": "vhdId", "type": "str"}, - "disk_id": {"key": "diskId", "type": "str"}, - "vhd_name": {"key": "vhdName", "type": "str"}, - "max_size_mb": {"key": "maxSizeMB", "type": "str"}, - "target_disk_location": {"key": "targetDiskLocation", "type": "str"}, - "target_disk_name": {"key": "targetDiskName", "type": "str"}, - "lun_id": {"key": "lunId", "type": "str"}, - "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, - "custom_target_disk_name": {"key": "customTargetDiskName", "type": "str"}, + "failover_direction": {"key": "failoverDirection", "type": "str"}, + "source_site_operations": {"key": "sourceSiteOperations", "type": "str"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "ClusterUnplannedFailoverProviderSpecificInput", + }, } def __init__( self, *, - vhd_type: Optional[str] = None, - vhd_id: Optional[str] = None, - disk_id: Optional[str] = None, - vhd_name: Optional[str] = None, - max_size_mb: Optional[str] = None, - target_disk_location: Optional[str] = None, - target_disk_name: Optional[str] = None, - lun_id: Optional[str] = None, - disk_encryption_set_id: Optional[str] = None, - custom_target_disk_name: Optional[str] = None, + failover_direction: Optional[str] = None, + source_site_operations: Optional[str] = None, + provider_specific_details: Optional["_models.ClusterUnplannedFailoverProviderSpecificInput"] = None, **kwargs: Any ) -> None: """ - :keyword vhd_type: VHD type. - :paramtype vhd_type: str - :keyword vhd_id: The VHD id. - :paramtype vhd_id: str - :keyword disk_id: The disk resource id. - :paramtype disk_id: str - :keyword vhd_name: VHD name. - :paramtype vhd_name: str - :keyword max_size_mb: Max side in MB. - :paramtype max_size_mb: str - :keyword target_disk_location: Blob uri of the Azure disk. - :paramtype target_disk_location: str - :keyword target_disk_name: The target Azure disk name. - :paramtype target_disk_name: str - :keyword lun_id: Ordinal\LunId of the disk for the Azure VM. - :paramtype lun_id: str - :keyword disk_encryption_set_id: The DiskEncryptionSet ARM ID. - :paramtype disk_encryption_set_id: str - :keyword custom_target_disk_name: The custom target Azure disk name. - :paramtype custom_target_disk_name: str + :keyword failover_direction: Failover direction. + :paramtype failover_direction: str + :keyword source_site_operations: Source site operations status. + :paramtype source_site_operations: str + :keyword provider_specific_details: Provider specific settings. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverProviderSpecificInput """ super().__init__(**kwargs) - self.vhd_type = vhd_type - self.vhd_id = vhd_id - self.disk_id = disk_id - self.vhd_name = vhd_name - self.max_size_mb = max_size_mb - self.target_disk_location = target_disk_location - self.target_disk_name = target_disk_name - self.lun_id = lun_id - self.disk_encryption_set_id = disk_encryption_set_id - self.custom_target_disk_name = custom_target_disk_name + self.failover_direction = failover_direction + self.source_site_operations = source_site_operations + self.provider_specific_details = provider_specific_details class ComputeSizeErrorDetails(_serialization.Model): @@ -5497,7 +6958,7 @@ class ConfigurationSettings(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: HyperVVirtualMachineDetails, ReplicationGroupDetails, VMwareVirtualMachineDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -5592,7 +7053,7 @@ def __init__( class ConsistencyCheckTaskDetails(TaskTypeDetails): """This class contains monitoring details of all the inconsistent Protected Entities in Vmm. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -5624,7 +7085,7 @@ def __init__(self, *, vm_details: Optional[List["_models.InconsistentVmDetails"] class CreateNetworkMappingInput(_serialization.Model): """Create network mappings input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Input properties for creating network mapping. Required. :vartype properties: @@ -5652,7 +7113,7 @@ def __init__(self, *, properties: "_models.CreateNetworkMappingInputProperties", class CreateNetworkMappingInputProperties(_serialization.Model): """Common input details for network mapping operation. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar recovery_fabric_name: Recovery fabric Name. :vartype recovery_fabric_name: str @@ -5820,7 +7281,7 @@ def __init__( self.properties = properties -class CreateProtectionContainerMappingInputProperties(_serialization.Model): +class CreateProtectionContainerMappingInputProperties(_serialization.Model): # pylint: disable=name-too-long """Configure pairing input properties. :ivar target_protection_container_id: The target unique protection container name. @@ -5923,7 +7384,7 @@ def __init__( class CreateRecoveryPlanInput(_serialization.Model): """Create recovery plan input class. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Recovery plan creation properties. Required. :vartype properties: @@ -5951,7 +7412,7 @@ def __init__(self, *, properties: "_models.CreateRecoveryPlanInputProperties", * class CreateRecoveryPlanInputProperties(_serialization.Model): """Recovery plan creation properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar primary_fabric_id: The primary fabric Id. Required. :vartype primary_fabric_id: str @@ -6047,10 +7508,10 @@ class CriticalJobHistoryDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.job_name = None - self.job_id = None - self.start_time = None - self.job_status = None + self.job_name: Optional[str] = None + self.job_id: Optional[str] = None + self.start_time: Optional[datetime.datetime] = None + self.job_status: Optional[str] = None class CurrentJobDetails(_serialization.Model): @@ -6081,9 +7542,9 @@ class CurrentJobDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.job_name = None - self.job_id = None - self.start_time = None + self.job_name: Optional[str] = None + self.job_id: Optional[str] = None + self.start_time: Optional[datetime.datetime] = None class CurrentScenarioDetails(_serialization.Model): @@ -6207,15 +7668,15 @@ class DataStoreUtilizationDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.total_snapshots_supported = None - self.total_snapshots_created = None - self.data_store_name = None + self.total_snapshots_supported: Optional[int] = None + self.total_snapshots_created: Optional[int] = None + self.data_store_name: Optional[str] = None class DisableProtectionInput(_serialization.Model): """Disable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Disable protection input properties. Required. :vartype properties: @@ -6287,7 +7748,7 @@ class DisableProtectionProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: InMageDisableProtectionProviderSpecificInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -6642,21 +8103,21 @@ class DraDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.version = None - self.last_heartbeat_utc = None - self.health = None - self.health_errors = None - self.forward_protected_item_count = None - self.reverse_protected_item_count = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None + self.forward_protected_item_count: Optional[int] = None + self.reverse_protected_item_count: Optional[int] = None class EnableMigrationInput(_serialization.Model): """Enable migration input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Enable migration input properties. Required. :vartype properties: @@ -6684,7 +8145,7 @@ def __init__(self, *, properties: "_models.EnableMigrationInputProperties", **kw class EnableMigrationInputProperties(_serialization.Model): """Enable migration input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar policy_id: The policy Id. Required. :vartype policy_id: str @@ -6728,7 +8189,7 @@ class EnableMigrationProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtEnableMigrationInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -6885,8 +8346,8 @@ class ErrorAdditionalInfo(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.type = None - self.info = None + self.type: Optional[str] = None + self.info: Optional[JSON] = None class ErrorDetail(_serialization.Model): @@ -6926,11 +8387,11 @@ class ErrorDetail(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = None - self.additional_info = None + self.code: Optional[str] = None + self.message: Optional[str] = None + self.target: Optional[str] = None + self.details: Optional[List["_models.ErrorDetail"]] = None + self.additional_info: Optional[List["_models.ErrorAdditionalInfo"]] = None class ErrorResponse(_serialization.Model): @@ -7026,7 +8487,7 @@ def __init__( self.next_link = next_link -class EventProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class EventProperties(_serialization.Model): """The properties of a monitoring event. :ivar event_code: The Id of the monitoring event. @@ -7214,7 +8675,7 @@ class EventSpecificDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: JobStatusEventDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -7242,7 +8703,7 @@ class ProtectionProfileCustomDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: ExistingProtectionProfile, NewProtectionProfile - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7267,7 +8728,7 @@ def __init__(self, **kwargs: Any) -> None: class ExistingProtectionProfile(ProtectionProfileCustomDetails): """Existing storage account input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7303,7 +8764,7 @@ class RecoveryAvailabilitySetCustomDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: ExistingRecoveryAvailabilitySet - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7328,7 +8789,7 @@ def __init__(self, **kwargs: Any) -> None: class ExistingRecoveryAvailabilitySet(RecoveryAvailabilitySetCustomDetails): """Existing recovery availability set input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7357,13 +8818,13 @@ def __init__(self, *, recovery_availability_set_id: Optional[str] = None, **kwar self.recovery_availability_set_id = recovery_availability_set_id -class RecoveryProximityPlacementGroupCustomDetails(_serialization.Model): +class RecoveryProximityPlacementGroupCustomDetails(_serialization.Model): # pylint: disable=name-too-long """Recovery Proximity placement group custom input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: ExistingRecoveryProximityPlacementGroup - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7388,7 +8849,7 @@ def __init__(self, **kwargs: Any) -> None: class ExistingRecoveryProximityPlacementGroup(RecoveryProximityPlacementGroupCustomDetails): """Existing recovery proximity placement group input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7423,7 +8884,7 @@ class RecoveryResourceGroupCustomDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: ExistingRecoveryResourceGroup - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7448,7 +8909,7 @@ def __init__(self, **kwargs: Any) -> None: class ExistingRecoveryResourceGroup(RecoveryResourceGroupCustomDetails): """Existing recovery resource group input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7481,7 +8942,7 @@ class RecoveryVirtualNetworkCustomDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: ExistingRecoveryVirtualNetwork, NewRecoveryVirtualNetwork - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7506,7 +8967,7 @@ def __init__(self, **kwargs: Any) -> None: class ExistingRecoveryVirtualNetwork(RecoveryVirtualNetworkCustomDetails): """Existing recovery virtual network input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7550,7 +9011,7 @@ class StorageAccountCustomDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: ExistingStorageAccount - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7575,7 +9036,7 @@ def __init__(self, **kwargs: Any) -> None: class ExistingStorageAccount(StorageAccountCustomDetails): """Existing storage account input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -7608,7 +9069,7 @@ def __init__(self, *, azure_storage_account_id: str, **kwargs: Any) -> None: class ExportJobDetails(JobDetails): """This class represents details for export jobs workflow. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible values). Required. @@ -7659,7 +9120,7 @@ def __init__( class ExtendedLocation(_serialization.Model): """Extended location of the resource. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar name: The name of the extended location. Required. :vartype name: str @@ -7973,7 +9434,7 @@ class JobTaskDetails(TaskTypeDetails): You probably want to use the sub-classes and not this class directly. Known sub-classes are: FabricReplicationGroupTaskDetails, VirtualMachineTaskDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -8010,7 +9471,7 @@ def __init__(self, *, job_task: Optional["_models.JobEntity"] = None, **kwargs: class FabricReplicationGroupTaskDetails(JobTaskDetails): """This class represents the fabric replication group task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -8058,7 +9519,7 @@ def __init__( class FailoverJobDetails(JobDetails): """This class represents the details for a failover job. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible values). Required. @@ -8308,14 +9769,14 @@ class GatewayOperationDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.state = None - self.progress_percentage = None - self.time_elapsed = None - self.time_remaining = None - self.upload_speed = None - self.host_name = None - self.data_stores = None - self.vmware_read_throughput = None + self.state: Optional[str] = None + self.progress_percentage: Optional[int] = None + self.time_elapsed: Optional[int] = None + self.time_remaining: Optional[int] = None + self.upload_speed: Optional[int] = None + self.host_name: Optional[str] = None + self.data_stores: Optional[List[str]] = None + self.vmware_read_throughput: Optional[int] = None class GroupTaskDetails(_serialization.Model): @@ -8325,7 +9786,7 @@ class GroupTaskDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: InlineWorkflowTaskDetails, RecoveryPlanGroupTaskDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -8359,7 +9820,7 @@ def __init__(self, *, child_tasks: Optional[List["_models.ASRTask"]] = None, **k self.child_tasks = child_tasks -class HealthError(_serialization.Model): # pylint: disable=too-many-instance-attributes +class HealthError(_serialization.Model): """Health Error. :ivar inner_health_errors: The inner health errors. HealthError having a list of HealthError as @@ -8603,15 +10064,15 @@ class HyperVHostDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.mars_agent_version = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.mars_agent_version: Optional[str] = None class HyperVReplica2012EventDetails(EventProviderSpecificDetails): """Model class for event details of a HyperVReplica E2E event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -8667,7 +10128,7 @@ def __init__( class HyperVReplica2012R2EventDetails(EventProviderSpecificDetails): """Model class for event details of a HyperVReplica blue E2E event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -8720,10 +10181,12 @@ def __init__( self.remote_fabric_name = remote_fabric_name -class HyperVReplicaAzureApplyRecoveryPointInput(ApplyRecoveryPointProviderSpecificInput): +class HyperVReplicaAzureApplyRecoveryPointInput( + ApplyRecoveryPointProviderSpecificInput +): # pylint: disable=name-too-long """ApplyRecoveryPoint input specific to HyperVReplicaAzure provider. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -8769,11 +10232,19 @@ class HyperVReplicaAzureDiskInputDetails(_serialization.Model): :vartype disk_id: str :ivar log_storage_account_id: The LogStorageAccountId. :vartype log_storage_account_id: str - :ivar disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar disk_encryption_set_id: The DiskEncryptionSet ARM ID. :vartype disk_encryption_set_id: str + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _attribute_map = { @@ -8781,6 +10252,10 @@ class HyperVReplicaAzureDiskInputDetails(_serialization.Model): "log_storage_account_id": {"key": "logStorageAccountId", "type": "str"}, "disk_type": {"key": "diskType", "type": "str"}, "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -8790,6 +10265,10 @@ def __init__( log_storage_account_id: Optional[str] = None, disk_type: Optional[Union[str, "_models.DiskAccountType"]] = None, disk_encryption_set_id: Optional[str] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ @@ -8797,25 +10276,35 @@ def __init__( :paramtype disk_id: str :keyword log_storage_account_id: The LogStorageAccountId. :paramtype log_storage_account_id: str - :keyword disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword disk_encryption_set_id: The DiskEncryptionSet ARM ID. :paramtype disk_encryption_set_id: str + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.disk_id = disk_id self.log_storage_account_id = log_storage_account_id self.disk_type = disk_type self.disk_encryption_set_id = disk_encryption_set_id + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class HyperVReplicaAzureEnableProtectionInput( - EnableProtectionProviderSpecificInput -): # pylint: disable=too-many-instance-attributes +class HyperVReplicaAzureEnableProtectionInput(EnableProtectionProviderSpecificInput): """HyperVReplicaAzure specific enable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -8825,6 +10314,8 @@ class HyperVReplicaAzureEnableProtectionInput( :vartype vm_name: str :ivar os_type: The OS type associated with VM. :vartype os_type: str + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str :ivar vhd_id: The OS disk VHD id associated with VM. :vartype vhd_id: str :ivar target_storage_account_id: The storage account Id. @@ -8833,7 +10324,7 @@ class HyperVReplicaAzureEnableProtectionInput( :vartype target_azure_network_id: str :ivar target_azure_subnet_id: The selected target Azure subnet Id. :vartype target_azure_subnet_id: str - :ivar enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :ivar enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :vartype enable_rdp_on_target_option: str :ivar target_azure_vm_name: The target azure VM Name. @@ -8863,6 +10354,13 @@ class HyperVReplicaAzureEnableProtectionInput( "NoLicenseType", "PAYG", and "AHUB". :vartype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :ivar target_vm_security_profile: The target VM security profile. + :vartype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties :ivar target_vm_size: The target VM size. :vartype target_vm_size: str :ivar target_proximity_placement_group_id: The proximity placement group ARM Id. @@ -8870,8 +10368,8 @@ class HyperVReplicaAzureEnableProtectionInput( :ivar use_managed_disks_for_replication: A value indicating whether managed disks should be used during replication. :vartype use_managed_disks_for_replication: str - :ivar disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar disks_to_include_for_managed_disks: The disks to include list for managed disks. :vartype disks_to_include_for_managed_disks: @@ -8897,6 +10395,7 @@ class HyperVReplicaAzureEnableProtectionInput( "hv_host_vm_id": {"key": "hvHostVmId", "type": "str"}, "vm_name": {"key": "vmName", "type": "str"}, "os_type": {"key": "osType", "type": "str"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, "vhd_id": {"key": "vhdId", "type": "str"}, "target_storage_account_id": {"key": "targetStorageAccountId", "type": "str"}, "target_azure_network_id": {"key": "targetAzureNetworkId", "type": "str"}, @@ -8912,6 +10411,8 @@ class HyperVReplicaAzureEnableProtectionInput( "target_availability_zone": {"key": "targetAvailabilityZone", "type": "str"}, "license_type": {"key": "licenseType", "type": "str"}, "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, + "target_vm_security_profile": {"key": "targetVmSecurityProfile", "type": "SecurityProfileProperties"}, "target_vm_size": {"key": "targetVmSize", "type": "str"}, "target_proximity_placement_group_id": {"key": "targetProximityPlacementGroupId", "type": "str"}, "use_managed_disks_for_replication": {"key": "useManagedDisksForReplication", "type": "str"}, @@ -8933,6 +10434,7 @@ def __init__( # pylint: disable=too-many-locals hv_host_vm_id: Optional[str] = None, vm_name: Optional[str] = None, os_type: Optional[str] = None, + user_selected_os_name: Optional[str] = None, vhd_id: Optional[str] = None, target_storage_account_id: Optional[str] = None, target_azure_network_id: Optional[str] = None, @@ -8948,6 +10450,8 @@ def __init__( # pylint: disable=too-many-locals target_availability_zone: Optional[str] = None, license_type: Optional[Union[str, "_models.LicenseType"]] = None, sql_server_license_type: Optional[Union[str, "_models.SqlServerLicenseType"]] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, + target_vm_security_profile: Optional["_models.SecurityProfileProperties"] = None, target_vm_size: Optional[str] = None, target_proximity_placement_group_id: Optional[str] = None, use_managed_disks_for_replication: Optional[str] = None, @@ -8967,6 +10471,8 @@ def __init__( # pylint: disable=too-many-locals :paramtype vm_name: str :keyword os_type: The OS type associated with VM. :paramtype os_type: str + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str :keyword vhd_id: The OS disk VHD id associated with VM. :paramtype vhd_id: str :keyword target_storage_account_id: The storage account Id. @@ -8975,7 +10481,7 @@ def __init__( # pylint: disable=too-many-locals :paramtype target_azure_network_id: str :keyword target_azure_subnet_id: The selected target Azure subnet Id. :paramtype target_azure_subnet_id: str - :keyword enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :keyword enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :paramtype enable_rdp_on_target_option: str :keyword target_azure_vm_name: The target azure VM Name. @@ -9005,6 +10511,13 @@ def __init__( # pylint: disable=too-many-locals "NotSpecified", "NoLicenseType", "PAYG", and "AHUB". :paramtype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :keyword target_vm_security_profile: The target VM security profile. + :paramtype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties :keyword target_vm_size: The target VM size. :paramtype target_vm_size: str :keyword target_proximity_placement_group_id: The proximity placement group ARM Id. @@ -9012,8 +10525,8 @@ def __init__( # pylint: disable=too-many-locals :keyword use_managed_disks_for_replication: A value indicating whether managed disks should be used during replication. :paramtype use_managed_disks_for_replication: str - :keyword disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword disks_to_include_for_managed_disks: The disks to include list for managed disks. :paramtype disks_to_include_for_managed_disks: @@ -9034,6 +10547,7 @@ def __init__( # pylint: disable=too-many-locals self.hv_host_vm_id = hv_host_vm_id self.vm_name = vm_name self.os_type = os_type + self.user_selected_os_name = user_selected_os_name self.vhd_id = vhd_id self.target_storage_account_id = target_storage_account_id self.target_azure_network_id = target_azure_network_id @@ -9049,6 +10563,8 @@ def __init__( # pylint: disable=too-many-locals self.target_availability_zone = target_availability_zone self.license_type = license_type self.sql_server_license_type = sql_server_license_type + self.linux_license_type = linux_license_type + self.target_vm_security_profile = target_vm_security_profile self.target_vm_size = target_vm_size self.target_proximity_placement_group_id = target_proximity_placement_group_id self.use_managed_disks_for_replication = use_managed_disks_for_replication @@ -9064,7 +10580,7 @@ def __init__( # pylint: disable=too-many-locals class HyperVReplicaAzureEventDetails(EventProviderSpecificDetails): """Model class for event details of a HyperVReplica E2A event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -9110,14 +10626,14 @@ def __init__( self.remote_container_name = remote_container_name -class PlannedFailoverProviderSpecificFailoverInput(_serialization.Model): +class PlannedFailoverProviderSpecificFailoverInput(_serialization.Model): # pylint: disable=name-too-long """Provider specific failover input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: HyperVReplicaAzurePlannedFailoverProviderInput, HyperVReplicaAzureFailbackProviderInput, InMageRcmFailbackPlannedFailoverProviderInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9148,7 +10664,7 @@ def __init__(self, **kwargs: Any) -> None: class HyperVReplicaAzureFailbackProviderInput(PlannedFailoverProviderSpecificFailoverInput): """HyperVReplicaAzureFailback specific planned failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9205,6 +10721,18 @@ class HyperVReplicaAzureManagedDiskDetails(_serialization.Model): :vartype replica_disk_type: str :ivar disk_encryption_set_id: The disk encryption set ARM Id. :vartype disk_encryption_set_id: str + :ivar target_disk_account_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". + :vartype target_disk_account_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _attribute_map = { @@ -9212,6 +10740,11 @@ class HyperVReplicaAzureManagedDiskDetails(_serialization.Model): "seed_managed_disk_id": {"key": "seedManagedDiskId", "type": "str"}, "replica_disk_type": {"key": "replicaDiskType", "type": "str"}, "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, + "target_disk_account_type": {"key": "targetDiskAccountType", "type": "str"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -9221,6 +10754,11 @@ def __init__( seed_managed_disk_id: Optional[str] = None, replica_disk_type: Optional[str] = None, disk_encryption_set_id: Optional[str] = None, + target_disk_account_type: Optional[Union[str, "_models.DiskAccountType"]] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ @@ -9232,18 +10770,38 @@ def __init__( :paramtype replica_disk_type: str :keyword disk_encryption_set_id: The disk encryption set ARM Id. :paramtype disk_encryption_set_id: str + :keyword target_disk_account_type: The disk type. Known values are: "Standard_LRS", + "Premium_LRS", "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and + "Premium_ZRS". + :paramtype target_disk_account_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.disk_id = disk_id self.seed_managed_disk_id = seed_managed_disk_id self.replica_disk_type = replica_disk_type self.disk_encryption_set_id = disk_encryption_set_id + self.target_disk_account_type = target_disk_account_type + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class HyperVReplicaAzurePlannedFailoverProviderInput(PlannedFailoverProviderSpecificFailoverInput): +class HyperVReplicaAzurePlannedFailoverProviderInput( + PlannedFailoverProviderSpecificFailoverInput +): # pylint: disable=name-too-long """HyperVReplicaAzure specific planned failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9301,7 +10859,7 @@ def __init__( class HyperVReplicaAzurePolicyDetails(PolicyProviderSpecificDetails): """Hyper-V Replica Azure specific protection profile details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -9382,7 +10940,7 @@ def __init__( class HyperVReplicaAzurePolicyInput(PolicyProviderSpecificInput): """Hyper-V Replica Azure specific input for creating a protection profile. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9453,14 +11011,12 @@ def __init__( self.storage_accounts = storage_accounts -class HyperVReplicaAzureReplicationDetails( - ReplicationProviderSpecificSettings -): # pylint: disable=too-many-instance-attributes +class HyperVReplicaAzureReplicationDetails(ReplicationProviderSpecificSettings): """Hyper V Replica Azure provider specific settings. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -9507,7 +11063,7 @@ class HyperVReplicaAzureReplicationDetails( :vartype source_vm_ram_size_in_mb: int :ivar source_vm_cpu_count: The CPU count of the VM on the primary side. :vartype source_vm_cpu_count: int - :ivar enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :ivar enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :vartype enable_rdp_on_target_option: str :ivar recovery_azure_resource_group_id: The target resource group Id. @@ -9525,6 +11081,10 @@ class HyperVReplicaAzureReplicationDetails( :vartype license_type: str :ivar sql_server_license_type: The SQL Server license type. :vartype sql_server_license_type: str + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :ivar last_recovery_point_received: The last recovery point received time. :vartype last_recovery_point_received: ~datetime.datetime :ivar target_vm_tags: The target VM tags. @@ -9542,6 +11102,9 @@ class HyperVReplicaAzureReplicationDetails( Upgrade configurations. :vartype all_available_os_upgrade_configurations: list[~azure.mgmt.recoveryservicessiterecovery.models.OSUpgradeSupportedVersions] + :ivar target_vm_security_profile: The target VM security profile. + :vartype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties """ _validation = { @@ -9578,6 +11141,7 @@ class HyperVReplicaAzureReplicationDetails( "use_managed_disks": {"key": "useManagedDisks", "type": "str"}, "license_type": {"key": "licenseType", "type": "str"}, "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, "last_recovery_point_received": {"key": "lastRecoveryPointReceived", "type": "iso-8601"}, "target_vm_tags": {"key": "targetVmTags", "type": "{str}"}, "seed_managed_disk_tags": {"key": "seedManagedDiskTags", "type": "{str}"}, @@ -9588,6 +11152,7 @@ class HyperVReplicaAzureReplicationDetails( "key": "allAvailableOSUpgradeConfigurations", "type": "[OSUpgradeSupportedVersions]", }, + "target_vm_security_profile": {"key": "targetVmSecurityProfile", "type": "SecurityProfileProperties"}, } def __init__( # pylint: disable=too-many-locals @@ -9620,12 +11185,14 @@ def __init__( # pylint: disable=too-many-locals use_managed_disks: Optional[str] = None, license_type: Optional[str] = None, sql_server_license_type: Optional[str] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, target_vm_tags: Optional[Dict[str, str]] = None, seed_managed_disk_tags: Optional[Dict[str, str]] = None, target_managed_disk_tags: Optional[Dict[str, str]] = None, target_nic_tags: Optional[Dict[str, str]] = None, protected_managed_disks: Optional[List["_models.HyperVReplicaAzureManagedDiskDetails"]] = None, all_available_os_upgrade_configurations: Optional[List["_models.OSUpgradeSupportedVersions"]] = None, + target_vm_security_profile: Optional["_models.SecurityProfileProperties"] = None, **kwargs: Any ) -> None: """ @@ -9672,7 +11239,7 @@ def __init__( # pylint: disable=too-many-locals :paramtype source_vm_ram_size_in_mb: int :keyword source_vm_cpu_count: The CPU count of the VM on the primary side. :paramtype source_vm_cpu_count: int - :keyword enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :keyword enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :paramtype enable_rdp_on_target_option: str :keyword recovery_azure_resource_group_id: The target resource group Id. @@ -9690,6 +11257,10 @@ def __init__( # pylint: disable=too-many-locals :paramtype license_type: str :keyword sql_server_license_type: The SQL Server license type. :paramtype sql_server_license_type: str + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :keyword target_vm_tags: The target VM tags. :paramtype target_vm_tags: dict[str, str] :keyword seed_managed_disk_tags: The tags for the seed managed disks. @@ -9705,6 +11276,9 @@ def __init__( # pylint: disable=too-many-locals Upgrade configurations. :paramtype all_available_os_upgrade_configurations: list[~azure.mgmt.recoveryservicessiterecovery.models.OSUpgradeSupportedVersions] + :keyword target_vm_security_profile: The target VM security profile. + :paramtype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties """ super().__init__(**kwargs) self.instance_type: str = "HyperVReplicaAzure" @@ -9735,19 +11309,21 @@ def __init__( # pylint: disable=too-many-locals self.use_managed_disks = use_managed_disks self.license_type = license_type self.sql_server_license_type = sql_server_license_type - self.last_recovery_point_received = None + self.linux_license_type = linux_license_type + self.last_recovery_point_received: Optional[datetime.datetime] = None self.target_vm_tags = target_vm_tags self.seed_managed_disk_tags = seed_managed_disk_tags self.target_managed_disk_tags = target_managed_disk_tags self.target_nic_tags = target_nic_tags self.protected_managed_disks = protected_managed_disks self.all_available_os_upgrade_configurations = all_available_os_upgrade_configurations + self.target_vm_security_profile = target_vm_security_profile class HyperVReplicaAzureReprotectInput(ReverseReplicationProviderSpecificInput): """Azure specific reprotect input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9817,7 +11393,7 @@ def __init__( class HyperVReplicaAzureTestFailoverInput(TestFailoverProviderSpecificInput): """HvrA provider specific input for test failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9875,7 +11451,7 @@ def __init__( class HyperVReplicaAzureUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): """HvrA provider specific input for unplanned failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9925,10 +11501,10 @@ def __init__( class HyperVReplicaAzureUpdateReplicationProtectedItemInput( UpdateReplicationProtectedItemProviderInput -): # pylint: disable=too-many-instance-attributes +): # pylint: disable=name-too-long """HyperV replica Azure input to update replication protected item. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -9958,6 +11534,12 @@ class HyperVReplicaAzureUpdateReplicationProtectedItemInput( "NoLicenseType", "PAYG", and "AHUB". :vartype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str :ivar vm_disks: The list of disk update properties. :vartype vm_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.UpdateDiskInput] """ @@ -9978,6 +11560,8 @@ class HyperVReplicaAzureUpdateReplicationProtectedItemInput( "target_managed_disk_tags": {"key": "targetManagedDiskTags", "type": "{str}"}, "target_nic_tags": {"key": "targetNicTags", "type": "{str}"}, "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, "vm_disks": {"key": "vmDisks", "type": "[UpdateDiskInput]"}, } @@ -9994,6 +11578,8 @@ def __init__( target_managed_disk_tags: Optional[Dict[str, str]] = None, target_nic_tags: Optional[Dict[str, str]] = None, sql_server_license_type: Optional[Union[str, "_models.SqlServerLicenseType"]] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, + user_selected_os_name: Optional[str] = None, vm_disks: Optional[List["_models.UpdateDiskInput"]] = None, **kwargs: Any ) -> None: @@ -10024,6 +11610,12 @@ def __init__( "NotSpecified", "NoLicenseType", "PAYG", and "AHUB". :paramtype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str :keyword vm_disks: The list of disk update properties. :paramtype vm_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.UpdateDiskInput] """ @@ -10039,13 +11631,15 @@ def __init__( self.target_managed_disk_tags = target_managed_disk_tags self.target_nic_tags = target_nic_tags self.sql_server_license_type = sql_server_license_type + self.linux_license_type = linux_license_type + self.user_selected_os_name = user_selected_os_name self.vm_disks = vm_disks class HyperVReplicaBaseEventDetails(EventProviderSpecificDetails): """Abstract model class for event details of a HyperVReplica E2E event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -10098,10 +11692,10 @@ def __init__( self.remote_fabric_name = remote_fabric_name -class HyperVReplicaBasePolicyDetails(PolicyProviderSpecificDetails): # pylint: disable=too-many-instance-attributes +class HyperVReplicaBasePolicyDetails(PolicyProviderSpecificDetails): """Base class for HyperVReplica policy details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -10206,7 +11800,7 @@ def __init__( class HyperVReplicaBaseReplicationDetails(ReplicationProviderSpecificSettings): """Hyper V replica provider specific settings base class. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -10282,10 +11876,10 @@ def __init__( self.v_m_disk_details = v_m_disk_details -class HyperVReplicaBluePolicyDetails(PolicyProviderSpecificDetails): # pylint: disable=too-many-instance-attributes +class HyperVReplicaBluePolicyDetails(PolicyProviderSpecificDetails): """Hyper-V Replica Blue specific protection profile details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -10394,13 +11988,13 @@ def __init__( self.replica_deletion_option = replica_deletion_option -class HyperVReplicaPolicyInput(PolicyProviderSpecificInput): # pylint: disable=too-many-instance-attributes +class HyperVReplicaPolicyInput(PolicyProviderSpecificInput): """Hyper-V Replica specific policy Input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: HyperVReplicaBluePolicyInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -10502,10 +12096,10 @@ def __init__( self.replica_deletion = replica_deletion -class HyperVReplicaBluePolicyInput(HyperVReplicaPolicyInput): # pylint: disable=too-many-instance-attributes +class HyperVReplicaBluePolicyInput(HyperVReplicaPolicyInput): """HyperV Replica Blue policy input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -10617,7 +12211,7 @@ def __init__( class HyperVReplicaBlueReplicationDetails(ReplicationProviderSpecificSettings): """HyperV replica 2012 R2 (Blue) replication details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -10693,10 +12287,10 @@ def __init__( self.v_m_disk_details = v_m_disk_details -class HyperVReplicaPolicyDetails(PolicyProviderSpecificDetails): # pylint: disable=too-many-instance-attributes +class HyperVReplicaPolicyDetails(PolicyProviderSpecificDetails): """Hyper-V Replica Blue specific protection profile details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -10801,7 +12395,7 @@ def __init__( class HyperVReplicaReplicationDetails(ReplicationProviderSpecificSettings): """HyperV replica 2012 replication details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -10880,7 +12474,7 @@ def __init__( class HyperVSiteDetails(FabricSpecificDetails): """HyperVSite fabric specific details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -10914,7 +12508,7 @@ class HyperVVirtualMachineDetails(ConfigurationSettings): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VmmVirtualMachineDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -11078,7 +12672,7 @@ def __init__( class IdentityProviderInput(_serialization.Model): """Identity provider input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar tenant_id: The tenant Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services. Required. @@ -11224,7 +12818,7 @@ def __init__( class InlineWorkflowTaskDetails(GroupTaskDetails): """This class represents the inline workflow task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -11313,7 +12907,7 @@ def __init__( class InMageAzureV2ApplyRecoveryPointInput(ApplyRecoveryPointProviderSpecificInput): """ApplyRecoveryPoint input specific to InMageAzureV2 provider. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -11340,8 +12934,8 @@ class InMageAzureV2DiskInputDetails(_serialization.Model): :vartype disk_id: str :ivar log_storage_account_id: The LogStorageAccountId. :vartype log_storage_account_id: str - :ivar disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar disk_encryption_set_id: The DiskEncryptionSet ARM ID. :vartype disk_encryption_set_id: str @@ -11368,8 +12962,8 @@ def __init__( :paramtype disk_id: str :keyword log_storage_account_id: The LogStorageAccountId. :paramtype log_storage_account_id: str - :keyword disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword disk_encryption_set_id: The DiskEncryptionSet ARM ID. :paramtype disk_encryption_set_id: str @@ -11381,12 +12975,10 @@ def __init__( self.disk_encryption_set_id = disk_encryption_set_id -class InMageAzureV2EnableProtectionInput( - EnableProtectionProviderSpecificInput -): # pylint: disable=too-many-instance-attributes +class InMageAzureV2EnableProtectionInput(EnableProtectionProviderSpecificInput): """VMware Azure specific enable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -11409,7 +13001,7 @@ class InMageAzureV2EnableProtectionInput( :vartype target_azure_network_id: str :ivar target_azure_subnet_id: The selected target Azure subnet Id. :vartype target_azure_subnet_id: str - :ivar enable_rdp_on_target_option: The selected option to enable RDP\SSH on target VM after + :ivar enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target VM after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :vartype enable_rdp_on_target_option: str :ivar target_azure_vm_name: The target azure VM Name. @@ -11422,8 +13014,8 @@ class InMageAzureV2EnableProtectionInput( :ivar target_azure_v2_resource_group_id: The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. :vartype target_azure_v2_resource_group_id: str - :ivar disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar target_availability_set_id: The target availability set ARM Id for resource manager deployment. @@ -11538,7 +13130,7 @@ def __init__( # pylint: disable=too-many-locals :paramtype target_azure_network_id: str :keyword target_azure_subnet_id: The selected target Azure subnet Id. :paramtype target_azure_subnet_id: str - :keyword enable_rdp_on_target_option: The selected option to enable RDP\SSH on target VM after + :keyword enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target VM after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :paramtype enable_rdp_on_target_option: str :keyword target_azure_vm_name: The target azure VM Name. @@ -11551,8 +13143,8 @@ def __init__( # pylint: disable=too-many-locals :keyword target_azure_v2_resource_group_id: The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. :paramtype target_azure_v2_resource_group_id: str - :keyword disk_type: The DiskType. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword target_availability_set_id: The target availability set ARM Id for resource manager deployment. @@ -11614,7 +13206,7 @@ def __init__( # pylint: disable=too-many-locals class InMageAzureV2EventDetails(EventProviderSpecificDetails): """Model class for event details of a VMwareAzureV2 event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -11746,7 +13338,7 @@ def __init__( class InMageAzureV2PolicyDetails(PolicyProviderSpecificDetails): """InMage Azure v2 specific protection profile details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -11813,7 +13405,7 @@ def __init__( class InMageAzureV2PolicyInput(PolicyProviderSpecificInput): """VMWare Azure specific policy Input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -11883,7 +13475,7 @@ def __init__( self.multi_vm_sync_status = multi_vm_sync_status -class InMageAzureV2ProtectedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageAzureV2ProtectedDiskDetails(_serialization.Model): """InMageAzureV2 protected disk details. :ivar disk_id: The disk id. @@ -12065,7 +13657,7 @@ def __init__( class InMageAzureV2RecoveryPointDetails(ProviderSpecificRecoveryPointDetails): """InMage Azure V2 provider specific recovery point details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the provider type. Required. :vartype instance_type: str @@ -12094,14 +13686,12 @@ def __init__(self, *, is_multi_vm_sync_point: Optional[str] = None, **kwargs: An self.is_multi_vm_sync_point = is_multi_vm_sync_point -class InMageAzureV2ReplicationDetails( - ReplicationProviderSpecificSettings -): # pylint: disable=too-many-instance-attributes +class InMageAzureV2ReplicationDetails(ReplicationProviderSpecificSettings): """InMageAzureV2 provider specific settings. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -12190,7 +13780,7 @@ class InMageAzureV2ReplicationDetails( :ivar discovery_type: A value indicating the discovery type of the machine. Value can be vCenter or physical. :vartype discovery_type: str - :ivar enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :ivar enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :vartype enable_rdp_on_target_option: str :ivar datastores: The datastores of the on-premise machine. Value can be list of strings that @@ -12513,7 +14103,7 @@ def __init__( # pylint: disable=too-many-locals :keyword discovery_type: A value indicating the discovery type of the machine. Value can be vCenter or physical. :paramtype discovery_type: str - :keyword enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :keyword enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :paramtype enable_rdp_on_target_option: str :keyword datastores: The datastores of the on-premise machine. Value can be list of strings @@ -12641,7 +14231,7 @@ def __init__( # pylint: disable=too-many-locals self.replica_id = replica_id self.os_version = os_version self.protected_managed_disks = protected_managed_disks - self.last_recovery_point_received = None + self.last_recovery_point_received: Optional[datetime.datetime] = None self.firmware_type = firmware_type self.azure_vm_generation = azure_vm_generation self.is_additional_stats_available = is_additional_stats_available @@ -12655,13 +14245,13 @@ def __init__( # pylint: disable=too-many-locals self.switch_provider_details = switch_provider_details self.supported_os_versions = supported_os_versions self.all_available_os_upgrade_configurations = all_available_os_upgrade_configurations - self.os_name = None + self.os_name: Optional[str] = None class InMageAzureV2ReprotectInput(ReverseReplicationProviderSpecificInput): """InMageAzureV2 specific provider input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -12735,7 +14325,7 @@ def __init__( self.disks_to_include = disks_to_include -class InMageAzureV2SwitchProviderBlockingErrorDetails(_serialization.Model): +class InMageAzureV2SwitchProviderBlockingErrorDetails(_serialization.Model): # pylint: disable=name-too-long """InMageAzureV2 switch provider blocking error details. Variables are only populated by the server, and will be ignored when sending a request. @@ -12775,12 +14365,12 @@ class InMageAzureV2SwitchProviderBlockingErrorDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.error_code = None - self.error_message = None - self.possible_causes = None - self.recommended_action = None - self.error_message_parameters = None - self.error_tags = None + self.error_code: Optional[str] = None + self.error_message: Optional[str] = None + self.possible_causes: Optional[str] = None + self.recommended_action: Optional[str] = None + self.error_message_parameters: Optional[Dict[str, str]] = None + self.error_tags: Optional[Dict[str, str]] = None class InMageAzureV2SwitchProviderDetails(_serialization.Model): @@ -12815,10 +14405,10 @@ class InMageAzureV2SwitchProviderDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.target_vault_id = None - self.target_resource_id = None - self.target_fabric_id = None - self.target_appliance_id = None + self.target_vault_id: Optional[str] = None + self.target_resource_id: Optional[str] = None + self.target_fabric_id: Optional[str] = None + self.target_appliance_id: Optional[str] = None class SwitchProviderSpecificInput(_serialization.Model): @@ -12827,7 +14417,7 @@ class SwitchProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: InMageAzureV2SwitchProviderInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -12852,7 +14442,7 @@ def __init__(self, **kwargs: Any) -> None: class InMageAzureV2SwitchProviderInput(SwitchProviderSpecificInput): """Provider specific input for InMageAzureV2 switch provider. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -12897,7 +14487,7 @@ def __init__(self, *, target_vault_id: str, target_fabric_id: str, target_applia class InMageAzureV2TestFailoverInput(TestFailoverProviderSpecificInput): """InMageAzureV2 provider specific input for test failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -12937,7 +14527,7 @@ def __init__( class InMageAzureV2UnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): """InMageAzureV2 provider specific input for unplanned failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -12976,10 +14566,10 @@ def __init__( class InMageAzureV2UpdateReplicationProtectedItemInput( UpdateReplicationProtectedItemProviderInput -): # pylint: disable=too-many-instance-attributes +): # pylint: disable=name-too-long """InMage Azure V2 input to update replication protected item. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -13087,7 +14677,7 @@ def __init__( class InMageBasePolicyDetails(PolicyProviderSpecificDetails): """Base class for the policies of providers using InMage replication. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -13142,10 +14732,12 @@ def __init__( self.multi_vm_sync_status = multi_vm_sync_status -class InMageDisableProtectionProviderSpecificInput(DisableProtectionProviderSpecificInput): +class InMageDisableProtectionProviderSpecificInput( + DisableProtectionProviderSpecificInput +): # pylint: disable=name-too-long """InMage disable protection provider specific input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -13291,12 +14883,10 @@ def __init__(self, *, disk_signature: Optional[str] = None, **kwargs: Any) -> No self.disk_signature = disk_signature -class InMageEnableProtectionInput( - EnableProtectionProviderSpecificInput -): # pylint: disable=too-many-instance-attributes +class InMageEnableProtectionInput(EnableProtectionProviderSpecificInput): """VMware Azure specific enable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -13398,7 +14988,7 @@ def __init__( self.disks_to_include = disks_to_include -class InMageFabricSwitchProviderBlockingErrorDetails(_serialization.Model): +class InMageFabricSwitchProviderBlockingErrorDetails(_serialization.Model): # pylint: disable=name-too-long """InMageFabric switch provider blocking error details. Variables are only populated by the server, and will be ignored when sending a request. @@ -13438,18 +15028,18 @@ class InMageFabricSwitchProviderBlockingErrorDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.error_code = None - self.error_message = None - self.possible_causes = None - self.recommended_action = None - self.error_message_parameters = None - self.error_tags = None + self.error_code: Optional[str] = None + self.error_message: Optional[str] = None + self.possible_causes: Optional[str] = None + self.recommended_action: Optional[str] = None + self.error_message_parameters: Optional[Dict[str, str]] = None + self.error_tags: Optional[Dict[str, str]] = None class InMagePolicyDetails(PolicyProviderSpecificDetails): """InMage specific protection profile details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -13507,7 +15097,7 @@ def __init__( class InMagePolicyInput(PolicyProviderSpecificInput): """VMWare Azure specific protection profile Input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -13568,7 +15158,7 @@ def __init__( self.multi_vm_sync_status = multi_vm_sync_status -class InMageProtectedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageProtectedDiskDetails(_serialization.Model): """InMage protected disk details. :ivar disk_id: The disk id. @@ -13740,7 +15330,38 @@ def __init__( self.progress_status = progress_status -class InMageRcmAgentUpgradeBlockingErrorDetails(_serialization.Model): +class InMageRcmAddDisksInput(AddDisksProviderSpecificInput): + """InMageRcm add disk(s) input. + + All required parameters must be populated in order to send to server. + + :ivar instance_type: The class type. Required. + :vartype instance_type: str + :ivar disks: The list of disk details. Required. + :vartype disks: list[~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmDiskInput] + """ + + _validation = { + "instance_type": {"required": True}, + "disks": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + "disks": {"key": "disks", "type": "[InMageRcmDiskInput]"}, + } + + def __init__(self, *, disks: List["_models.InMageRcmDiskInput"], **kwargs: Any) -> None: + """ + :keyword disks: The list of disk details. Required. + :paramtype disks: list[~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmDiskInput] + """ + super().__init__(**kwargs) + self.instance_type: str = "InMageRcm" + self.disks = disks + + +class InMageRcmAgentUpgradeBlockingErrorDetails(_serialization.Model): # pylint: disable=name-too-long """InMageRcm source agent upgrade blocking error details. Variables are only populated by the server, and will be ignored when sending a request. @@ -13780,15 +15401,15 @@ class InMageRcmAgentUpgradeBlockingErrorDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.error_code = None - self.error_message = None - self.possible_causes = None - self.recommended_action = None - self.error_message_parameters = None - self.error_tags = None + self.error_code: Optional[str] = None + self.error_message: Optional[str] = None + self.possible_causes: Optional[str] = None + self.recommended_action: Optional[str] = None + self.error_message_parameters: Optional[Dict[str, str]] = None + self.error_tags: Optional[Dict[str, str]] = None -class InMageRcmApplianceDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageRcmApplianceDetails(_serialization.Model): """InMageRcm appliance details. Variables are only populated by the server, and will be ignored when sending a request. @@ -13853,17 +15474,19 @@ class InMageRcmApplianceDetails(_serialization.Model): # pylint: disable=too-ma def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.fabric_arm_id = None - self.process_server = None - self.rcm_proxy = None - self.push_installer = None - self.replication_agent = None - self.reprotect_agent = None - self.mars_agent = None - self.dra = None - self.switch_provider_blocking_error_details = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.fabric_arm_id: Optional[str] = None + self.process_server: Optional["_models.ProcessServerDetails"] = None + self.rcm_proxy: Optional["_models.RcmProxyDetails"] = None + self.push_installer: Optional["_models.PushInstallerDetails"] = None + self.replication_agent: Optional["_models.ReplicationAgentDetails"] = None + self.reprotect_agent: Optional["_models.ReprotectAgentDetails"] = None + self.mars_agent: Optional["_models.MarsAgentDetails"] = None + self.dra: Optional["_models.DraDetails"] = None + self.switch_provider_blocking_error_details: Optional[ + List["_models.InMageRcmFabricSwitchProviderBlockingErrorDetails"] + ] = None class InMageRcmApplianceSpecificDetails(ApplianceSpecificDetails): @@ -13871,7 +15494,7 @@ class InMageRcmApplianceSpecificDetails(ApplianceSpecificDetails): Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -13894,13 +15517,13 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" - self.appliances = None + self.appliances: Optional[List["_models.InMageRcmApplianceDetails"]] = None class InMageRcmApplyRecoveryPointInput(ApplyRecoveryPointProviderSpecificInput): """ApplyRecoveryPoint input specific to InMageRcm provider. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -13928,7 +15551,7 @@ def __init__(self, *, recovery_point_id: str, **kwargs: Any) -> None: self.recovery_point_id = recovery_point_id -class InMageRcmDiscoveredProtectedVmDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageRcmDiscoveredProtectedVmDetails(_serialization.Model): """InMageRcm discovered protected VM details. Variables are only populated by the server, and will be ignored when sending a request. @@ -13992,34 +15615,42 @@ class InMageRcmDiscoveredProtectedVmDetails(_serialization.Model): # pylint: di def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.v_center_id = None - self.v_center_fqdn = None - self.datastores = None - self.ip_addresses = None - self.vmware_tools_status = None - self.power_status = None - self.vm_fqdn = None - self.os_name = None - self.created_timestamp = None - self.updated_timestamp = None - self.is_deleted = None - self.last_discovery_time_in_utc = None + self.v_center_id: Optional[str] = None + self.v_center_fqdn: Optional[str] = None + self.datastores: Optional[List[str]] = None + self.ip_addresses: Optional[List[str]] = None + self.vmware_tools_status: Optional[str] = None + self.power_status: Optional[str] = None + self.vm_fqdn: Optional[str] = None + self.os_name: Optional[str] = None + self.created_timestamp: Optional[datetime.datetime] = None + self.updated_timestamp: Optional[datetime.datetime] = None + self.is_deleted: Optional[bool] = None + self.last_discovery_time_in_utc: Optional[datetime.datetime] = None class InMageRcmDiskInput(_serialization.Model): """InMageRcm disk input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar disk_id: The disk Id. Required. :vartype disk_id: str :ivar log_storage_account_id: The log storage account ARM Id. Required. :vartype log_storage_account_id: str - :ivar disk_type: The disk type. Required. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Required. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar disk_encryption_set_id: The DiskEncryptionSet ARM Id. :vartype disk_encryption_set_id: str + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -14033,6 +15664,10 @@ class InMageRcmDiskInput(_serialization.Model): "log_storage_account_id": {"key": "logStorageAccountId", "type": "str"}, "disk_type": {"key": "diskType", "type": "str"}, "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -14042,6 +15677,10 @@ def __init__( log_storage_account_id: str, disk_type: Union[str, "_models.DiskAccountType"], disk_encryption_set_id: Optional[str] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ @@ -14050,30 +15689,50 @@ def __init__( :keyword log_storage_account_id: The log storage account ARM Id. Required. :paramtype log_storage_account_id: str :keyword disk_type: The disk type. Required. Known values are: "Standard_LRS", "Premium_LRS", - and "StandardSSD_LRS". + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword disk_encryption_set_id: The DiskEncryptionSet ARM Id. :paramtype disk_encryption_set_id: str + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.disk_id = disk_id self.log_storage_account_id = log_storage_account_id self.disk_type = disk_type self.disk_encryption_set_id = disk_encryption_set_id + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb class InMageRcmDisksDefaultInput(_serialization.Model): """InMageRcm disk input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar log_storage_account_id: The log storage account ARM Id. Required. :vartype log_storage_account_id: str - :ivar disk_type: The disk type. Required. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Required. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar disk_encryption_set_id: The DiskEncryptionSet ARM Id. :vartype disk_encryption_set_id: str + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -14085,6 +15744,10 @@ class InMageRcmDisksDefaultInput(_serialization.Model): "log_storage_account_id": {"key": "logStorageAccountId", "type": "str"}, "disk_type": {"key": "diskType", "type": "str"}, "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -14093,29 +15756,43 @@ def __init__( log_storage_account_id: str, disk_type: Union[str, "_models.DiskAccountType"], disk_encryption_set_id: Optional[str] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ :keyword log_storage_account_id: The log storage account ARM Id. Required. :paramtype log_storage_account_id: str :keyword disk_type: The disk type. Required. Known values are: "Standard_LRS", "Premium_LRS", - and "StandardSSD_LRS". + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword disk_encryption_set_id: The DiskEncryptionSet ARM Id. :paramtype disk_encryption_set_id: str + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.log_storage_account_id = log_storage_account_id self.disk_type = disk_type self.disk_encryption_set_id = disk_encryption_set_id + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class InMageRcmEnableProtectionInput( - EnableProtectionProviderSpecificInput -): # pylint: disable=too-many-instance-attributes +class InMageRcmEnableProtectionInput(EnableProtectionProviderSpecificInput): """InMageRcm specific enable protection input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -14159,6 +15836,31 @@ class InMageRcmEnableProtectionInput( :vartype process_server_id: str :ivar multi_vm_group_name: The multi VM group name. :vartype multi_vm_group_name: str + :ivar sql_server_license_type: The SQL Server license type. Known values are: "NotSpecified", + "NoLicenseType", "PAYG", and "AHUB". + :vartype sql_server_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :ivar target_vm_tags: The target VM tags. + :vartype target_vm_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar seed_managed_disk_tags: The tags for the seed managed disks. + :vartype seed_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar target_managed_disk_tags: The tags for the target managed disks. + :vartype target_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar target_nic_tags: The tags for the target NICs. + :vartype target_nic_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str + :ivar target_vm_security_profile: The target VM security profile. + :vartype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties """ _validation = { @@ -14188,9 +15890,17 @@ class InMageRcmEnableProtectionInput( "run_as_account_id": {"key": "runAsAccountId", "type": "str"}, "process_server_id": {"key": "processServerId", "type": "str"}, "multi_vm_group_name": {"key": "multiVmGroupName", "type": "str"}, + "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, + "target_vm_tags": {"key": "targetVmTags", "type": "[UserCreatedResourceTag]"}, + "seed_managed_disk_tags": {"key": "seedManagedDiskTags", "type": "[UserCreatedResourceTag]"}, + "target_managed_disk_tags": {"key": "targetManagedDiskTags", "type": "[UserCreatedResourceTag]"}, + "target_nic_tags": {"key": "targetNicTags", "type": "[UserCreatedResourceTag]"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, + "target_vm_security_profile": {"key": "targetVmSecurityProfile", "type": "SecurityProfileProperties"}, } - def __init__( + def __init__( # pylint: disable=too-many-locals self, *, fabric_discovery_machine_id: str, @@ -14211,6 +15921,14 @@ def __init__( target_boot_diagnostics_storage_account_id: Optional[str] = None, run_as_account_id: Optional[str] = None, multi_vm_group_name: Optional[str] = None, + sql_server_license_type: Optional[Union[str, "_models.SqlServerLicenseType"]] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, + target_vm_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + seed_managed_disk_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + target_managed_disk_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + target_nic_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + user_selected_os_name: Optional[str] = None, + target_vm_security_profile: Optional["_models.SecurityProfileProperties"] = None, **kwargs: Any ) -> None: """ @@ -14254,6 +15972,31 @@ def __init__( :paramtype process_server_id: str :keyword multi_vm_group_name: The multi VM group name. :paramtype multi_vm_group_name: str + :keyword sql_server_license_type: The SQL Server license type. Known values are: + "NotSpecified", "NoLicenseType", "PAYG", and "AHUB". + :paramtype sql_server_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :keyword target_vm_tags: The target VM tags. + :paramtype target_vm_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword seed_managed_disk_tags: The tags for the seed managed disks. + :paramtype seed_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword target_managed_disk_tags: The tags for the target managed disks. + :paramtype target_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword target_nic_tags: The tags for the target NICs. + :paramtype target_nic_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str + :keyword target_vm_security_profile: The target VM security profile. + :paramtype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" @@ -14275,6 +16018,14 @@ def __init__( self.run_as_account_id = run_as_account_id self.process_server_id = process_server_id self.multi_vm_group_name = multi_vm_group_name + self.sql_server_license_type = sql_server_license_type + self.linux_license_type = linux_license_type + self.target_vm_tags = target_vm_tags + self.seed_managed_disk_tags = seed_managed_disk_tags + self.target_managed_disk_tags = target_managed_disk_tags + self.target_nic_tags = target_nic_tags + self.user_selected_os_name = user_selected_os_name + self.target_vm_security_profile = target_vm_security_profile class InMageRcmEventDetails(EventProviderSpecificDetails): @@ -14282,7 +16033,7 @@ class InMageRcmEventDetails(EventProviderSpecificDetails): Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -14332,20 +16083,20 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" - self.protected_item_name = None - self.vm_name = None - self.latest_agent_version = None - self.job_id = None - self.fabric_name = None - self.appliance_name = None - self.server_type = None - self.component_display_name = None + self.protected_item_name: Optional[str] = None + self.vm_name: Optional[str] = None + self.latest_agent_version: Optional[str] = None + self.job_id: Optional[str] = None + self.fabric_name: Optional[str] = None + self.appliance_name: Optional[str] = None + self.server_type: Optional[str] = None + self.component_display_name: Optional[str] = None class InMageRcmFabricCreationInput(FabricSpecificCreationInput): """InMageRcm fabric provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Required. :vartype instance_type: str @@ -14398,12 +16149,12 @@ def __init__( self.source_agent_identity = source_agent_identity -class InMageRcmFabricSpecificDetails(FabricSpecificDetails): # pylint: disable=too-many-instance-attributes +class InMageRcmFabricSpecificDetails(FabricSpecificDetails): """InMageRcm fabric specific details. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -14495,25 +16246,25 @@ def __init__( """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" - self.vmware_site_id = None - self.physical_site_id = None - self.service_endpoint = None - self.service_resource_id = None - self.service_container_id = None - self.data_plane_uri = None - self.control_plane_uri = None + self.vmware_site_id: Optional[str] = None + self.physical_site_id: Optional[str] = None + self.service_endpoint: Optional[str] = None + self.service_resource_id: Optional[str] = None + self.service_container_id: Optional[str] = None + self.data_plane_uri: Optional[str] = None + self.control_plane_uri: Optional[str] = None self.source_agent_identity_details = source_agent_identity_details - self.process_servers = None - self.rcm_proxies = None - self.push_installers = None - self.replication_agents = None - self.reprotect_agents = None - self.mars_agents = None - self.dras = None - self.agent_details = None + self.process_servers: Optional[List["_models.ProcessServerDetails"]] = None + self.rcm_proxies: Optional[List["_models.RcmProxyDetails"]] = None + self.push_installers: Optional[List["_models.PushInstallerDetails"]] = None + self.replication_agents: Optional[List["_models.ReplicationAgentDetails"]] = None + self.reprotect_agents: Optional[List["_models.ReprotectAgentDetails"]] = None + self.mars_agents: Optional[List["_models.MarsAgentDetails"]] = None + self.dras: Optional[List["_models.DraDetails"]] = None + self.agent_details: Optional[List["_models.AgentDetails"]] = None -class InMageRcmFabricSwitchProviderBlockingErrorDetails(_serialization.Model): +class InMageRcmFabricSwitchProviderBlockingErrorDetails(_serialization.Model): # pylint: disable=name-too-long """InMageRcmFabric switch provider blocking error details. Variables are only populated by the server, and will be ignored when sending a request. @@ -14553,17 +16304,15 @@ class InMageRcmFabricSwitchProviderBlockingErrorDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.error_code = None - self.error_message = None - self.possible_causes = None - self.recommended_action = None - self.error_message_parameters = None - self.error_tags = None + self.error_code: Optional[str] = None + self.error_message: Optional[str] = None + self.possible_causes: Optional[str] = None + self.recommended_action: Optional[str] = None + self.error_message_parameters: Optional[Dict[str, str]] = None + self.error_tags: Optional[Dict[str, str]] = None -class InMageRcmFailbackDiscoveredProtectedVmDetails( - _serialization.Model -): # pylint: disable=too-many-instance-attributes +class InMageRcmFailbackDiscoveredProtectedVmDetails(_serialization.Model): # pylint: disable=name-too-long """InMageRcmFailback discovered VM details. Variables are only populated by the server, and will be ignored when sending a request. @@ -14627,18 +16376,18 @@ class InMageRcmFailbackDiscoveredProtectedVmDetails( def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.v_center_id = None - self.v_center_fqdn = None - self.datastores = None - self.ip_addresses = None - self.vmware_tools_status = None - self.power_status = None - self.vm_fqdn = None - self.os_name = None - self.created_timestamp = None - self.updated_timestamp = None - self.is_deleted = None - self.last_discovery_time_in_utc = None + self.v_center_id: Optional[str] = None + self.v_center_fqdn: Optional[str] = None + self.datastores: Optional[List[str]] = None + self.ip_addresses: Optional[List[str]] = None + self.vmware_tools_status: Optional[str] = None + self.power_status: Optional[str] = None + self.vm_fqdn: Optional[str] = None + self.os_name: Optional[str] = None + self.created_timestamp: Optional[datetime.datetime] = None + self.updated_timestamp: Optional[datetime.datetime] = None + self.is_deleted: Optional[bool] = None + self.last_discovery_time_in_utc: Optional[datetime.datetime] = None class InMageRcmFailbackEventDetails(EventProviderSpecificDetails): @@ -14646,7 +16395,7 @@ class InMageRcmFailbackEventDetails(EventProviderSpecificDetails): Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -14684,11 +16433,11 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "InMageRcmFailback" - self.protected_item_name = None - self.vm_name = None - self.appliance_name = None - self.server_type = None - self.component_display_name = None + self.protected_item_name: Optional[str] = None + self.vm_name: Optional[str] = None + self.appliance_name: Optional[str] = None + self.server_type: Optional[str] = None + self.component_display_name: Optional[str] = None class InMageRcmFailbackMobilityAgentDetails(_serialization.Model): @@ -14745,15 +16494,15 @@ class InMageRcmFailbackMobilityAgentDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.version = None - self.latest_version = None - self.driver_version = None - self.latest_upgradable_version_without_reboot = None - self.agent_version_expiry_date = None - self.driver_version_expiry_date = None - self.last_heartbeat_utc = None - self.reasons_blocking_upgrade = None - self.is_upgradeable = None + self.version: Optional[str] = None + self.latest_version: Optional[str] = None + self.driver_version: Optional[str] = None + self.latest_upgradable_version_without_reboot: Optional[str] = None + self.agent_version_expiry_date: Optional[datetime.datetime] = None + self.driver_version_expiry_date: Optional[datetime.datetime] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.reasons_blocking_upgrade: Optional[List[Union[str, "_models.AgentUpgradeBlockedReason"]]] = None + self.is_upgradeable: Optional[str] = None class InMageRcmFailbackNicDetails(_serialization.Model): @@ -14788,16 +16537,18 @@ class InMageRcmFailbackNicDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.mac_address = None - self.network_name = None - self.adapter_type = None - self.source_ip_address = None + self.mac_address: Optional[str] = None + self.network_name: Optional[str] = None + self.adapter_type: Optional[str] = None + self.source_ip_address: Optional[str] = None -class InMageRcmFailbackPlannedFailoverProviderInput(PlannedFailoverProviderSpecificFailoverInput): +class InMageRcmFailbackPlannedFailoverProviderInput( + PlannedFailoverProviderSpecificFailoverInput +): # pylint: disable=name-too-long """Provider specific input for InMageRcmFailback failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -14834,7 +16585,7 @@ def __init__( class InMageRcmFailbackPolicyCreationInput(PolicyProviderSpecificInput): """InMageRcmFailback policy creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -14879,7 +16630,7 @@ def __init__( class InMageRcmFailbackPolicyDetails(PolicyProviderSpecificDetails): """InMageRcm failback specific policy details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -14920,7 +16671,7 @@ def __init__( self.crash_consistent_frequency_in_minutes = crash_consistent_frequency_in_minutes -class InMageRcmFailbackProtectedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageRcmFailbackProtectedDiskDetails(_serialization.Model): """InMageRcmFailback protected disk details. Variables are only populated by the server, and will be ignored when sending a request. @@ -14994,27 +16745,25 @@ def __init__( ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmFailbackSyncDetails """ super().__init__(**kwargs) - self.disk_id = None - self.disk_name = None - self.is_os_disk = None - self.capacity_in_bytes = None - self.disk_uuid = None - self.data_pending_in_log_data_store_in_mb = None - self.data_pending_at_source_agent_in_mb = None - self.is_initial_replication_complete = None + self.disk_id: Optional[str] = None + self.disk_name: Optional[str] = None + self.is_os_disk: Optional[str] = None + self.capacity_in_bytes: Optional[int] = None + self.disk_uuid: Optional[str] = None + self.data_pending_in_log_data_store_in_mb: Optional[float] = None + self.data_pending_at_source_agent_in_mb: Optional[float] = None + self.is_initial_replication_complete: Optional[str] = None self.ir_details = ir_details self.resync_details = resync_details - self.last_sync_time = None + self.last_sync_time: Optional[datetime.datetime] = None -class InMageRcmFailbackReplicationDetails( - ReplicationProviderSpecificSettings -): # pylint: disable=too-many-instance-attributes +class InMageRcmFailbackReplicationDetails(ReplicationProviderSpecificSettings): """InMageRcmFailback provider specific details. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -15187,41 +16936,41 @@ def __init__( # pylint: disable=too-many-locals """ super().__init__(**kwargs) self.instance_type: str = "InMageRcmFailback" - self.internal_identifier = None - self.azure_virtual_machine_id = None - self.multi_vm_group_name = None - self.reprotect_agent_id = None - self.reprotect_agent_name = None - self.os_type = None - self.log_storage_account_id = None - self.targetv_center_id = None - self.target_data_store_name = None - self.target_vm_name = None - self.initial_replication_progress_percentage = None - self.initial_replication_processed_bytes = None - self.initial_replication_transferred_bytes = None - self.initial_replication_progress_health = None - self.resync_progress_percentage = None - self.resync_processed_bytes = None - self.resync_transferred_bytes = None - self.resync_progress_health = None - self.resync_required = None - self.resync_state = None + self.internal_identifier: Optional[str] = None + self.azure_virtual_machine_id: Optional[str] = None + self.multi_vm_group_name: Optional[str] = None + self.reprotect_agent_id: Optional[str] = None + self.reprotect_agent_name: Optional[str] = None + self.os_type: Optional[str] = None + self.log_storage_account_id: Optional[str] = None + self.targetv_center_id: Optional[str] = None + self.target_data_store_name: Optional[str] = None + self.target_vm_name: Optional[str] = None + self.initial_replication_progress_percentage: Optional[int] = None + self.initial_replication_processed_bytes: Optional[int] = None + self.initial_replication_transferred_bytes: Optional[int] = None + self.initial_replication_progress_health: Optional[Union[str, "_models.VmReplicationProgressHealth"]] = None + self.resync_progress_percentage: Optional[int] = None + self.resync_processed_bytes: Optional[int] = None + self.resync_transferred_bytes: Optional[int] = None + self.resync_progress_health: Optional[Union[str, "_models.VmReplicationProgressHealth"]] = None + self.resync_required: Optional[str] = None + self.resync_state: Optional[Union[str, "_models.ResyncState"]] = None self.protected_disks = protected_disks self.mobility_agent_details = mobility_agent_details self.vm_nics = vm_nics - self.last_planned_failover_start_time = None - self.last_planned_failover_status = None + self.last_planned_failover_start_time: Optional[datetime.datetime] = None + self.last_planned_failover_status: Optional[Union[str, "_models.PlannedFailoverStatus"]] = None self.discovered_vm_details = discovered_vm_details - self.last_used_policy_id = None - self.last_used_policy_friendly_name = None - self.is_agent_registration_successful_after_failover = None + self.last_used_policy_id: Optional[str] = None + self.last_used_policy_friendly_name: Optional[str] = None + self.is_agent_registration_successful_after_failover: Optional[bool] = None class InMageRcmFailbackReprotectInput(ReverseReplicationProviderSpecificInput): """InMageRcmFailback specific provider input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -15317,14 +17066,14 @@ class InMageRcmFailbackSyncDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.progress_health = None - self.transferred_bytes = None - self.last15_minutes_transferred_bytes = None - self.last_data_transfer_time_utc = None - self.processed_bytes = None - self.start_time = None - self.last_refresh_time = None - self.progress_percentage = None + self.progress_health: Optional[Union[str, "_models.DiskReplicationProgressHealth"]] = None + self.transferred_bytes: Optional[int] = None + self.last15_minutes_transferred_bytes: Optional[int] = None + self.last_data_transfer_time_utc: Optional[str] = None + self.processed_bytes: Optional[int] = None + self.start_time: Optional[str] = None + self.last_refresh_time: Optional[str] = None + self.progress_percentage: Optional[int] = None class InMageRcmLastAgentUpgradeErrorDetails(_serialization.Model): @@ -15367,12 +17116,12 @@ class InMageRcmLastAgentUpgradeErrorDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.error_code = None - self.error_message = None - self.possible_causes = None - self.recommended_action = None - self.error_message_parameters = None - self.error_tags = None + self.error_code: Optional[str] = None + self.error_message: Optional[str] = None + self.possible_causes: Optional[str] = None + self.recommended_action: Optional[str] = None + self.error_message_parameters: Optional[Dict[str, str]] = None + self.error_tags: Optional[Dict[str, str]] = None class InMageRcmMobilityAgentDetails(_serialization.Model): @@ -15433,19 +17182,19 @@ class InMageRcmMobilityAgentDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.version = None - self.latest_version = None - self.latest_agent_release_date = None - self.driver_version = None - self.latest_upgradable_version_without_reboot = None - self.agent_version_expiry_date = None - self.driver_version_expiry_date = None - self.last_heartbeat_utc = None - self.reasons_blocking_upgrade = None - self.is_upgradeable = None + self.version: Optional[str] = None + self.latest_version: Optional[str] = None + self.latest_agent_release_date: Optional[str] = None + self.driver_version: Optional[str] = None + self.latest_upgradable_version_without_reboot: Optional[str] = None + self.agent_version_expiry_date: Optional[datetime.datetime] = None + self.driver_version_expiry_date: Optional[datetime.datetime] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.reasons_blocking_upgrade: Optional[List[Union[str, "_models.AgentUpgradeBlockedReason"]]] = None + self.is_upgradeable: Optional[str] = None -class InMageRcmNicDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageRcmNicDetails(_serialization.Model): """InMageRcm NIC details. Variables are only populated by the server, and will be ignored when sending a request. @@ -15481,6 +17230,8 @@ class InMageRcmNicDetails(_serialization.Model): # pylint: disable=too-many-ins :ivar test_ip_address_type: The test IP address type. Known values are: "Dynamic" and "Static". :vartype test_ip_address_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.EthernetAddressType + :ivar target_nic_name: The target NIC name. + :vartype target_nic_name: str """ _validation = { @@ -15505,6 +17256,7 @@ class InMageRcmNicDetails(_serialization.Model): # pylint: disable=too-many-ins "test_subnet_name": {"key": "testSubnetName", "type": "str"}, "test_ip_address": {"key": "testIPAddress", "type": "str"}, "test_ip_address_type": {"key": "testIPAddressType", "type": "str"}, + "target_nic_name": {"key": "targetNicName", "type": "str"}, } def __init__( @@ -15518,6 +17270,7 @@ def __init__( test_subnet_name: Optional[str] = None, test_ip_address: Optional[str] = None, test_ip_address_type: Optional[Union[str, "_models.EthernetAddressType"]] = None, + target_nic_name: Optional[str] = None, **kwargs: Any ) -> None: """ @@ -15542,27 +17295,30 @@ def __init__( "Static". :paramtype test_ip_address_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.EthernetAddressType + :keyword target_nic_name: The target NIC name. + :paramtype target_nic_name: str """ super().__init__(**kwargs) - self.nic_id = None + self.nic_id: Optional[str] = None self.is_primary_nic = is_primary_nic self.is_selected_for_failover = is_selected_for_failover - self.source_ip_address = None - self.source_ip_address_type = None - self.source_network_id = None - self.source_subnet_name = None + self.source_ip_address: Optional[str] = None + self.source_ip_address_type: Optional[Union[str, "_models.EthernetAddressType"]] = None + self.source_network_id: Optional[str] = None + self.source_subnet_name: Optional[str] = None self.target_ip_address = target_ip_address self.target_ip_address_type = target_ip_address_type self.target_subnet_name = target_subnet_name self.test_subnet_name = test_subnet_name self.test_ip_address = test_ip_address self.test_ip_address_type = test_ip_address_type + self.target_nic_name = target_nic_name class InMageRcmNicInput(_serialization.Model): """InMageRcm NIC input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar nic_id: The NIC Id. Required. :vartype nic_id: str @@ -15578,6 +17334,8 @@ class InMageRcmNicInput(_serialization.Model): :vartype test_subnet_name: str :ivar test_static_ip_address: The test static IP address. :vartype test_static_ip_address: str + :ivar target_nic_name: The target NIC name. + :vartype target_nic_name: str """ _validation = { @@ -15593,6 +17351,7 @@ class InMageRcmNicInput(_serialization.Model): "target_static_ip_address": {"key": "targetStaticIPAddress", "type": "str"}, "test_subnet_name": {"key": "testSubnetName", "type": "str"}, "test_static_ip_address": {"key": "testStaticIPAddress", "type": "str"}, + "target_nic_name": {"key": "targetNicName", "type": "str"}, } def __init__( @@ -15605,6 +17364,7 @@ def __init__( target_static_ip_address: Optional[str] = None, test_subnet_name: Optional[str] = None, test_static_ip_address: Optional[str] = None, + target_nic_name: Optional[str] = None, **kwargs: Any ) -> None: """ @@ -15623,6 +17383,8 @@ def __init__( :paramtype test_subnet_name: str :keyword test_static_ip_address: The test static IP address. :paramtype test_static_ip_address: str + :keyword target_nic_name: The target NIC name. + :paramtype target_nic_name: str """ super().__init__(**kwargs) self.nic_id = nic_id @@ -15632,12 +17394,13 @@ def __init__( self.target_static_ip_address = target_static_ip_address self.test_subnet_name = test_subnet_name self.test_static_ip_address = test_static_ip_address + self.target_nic_name = target_nic_name class InMageRcmPolicyCreationInput(PolicyProviderSpecificInput): """InMageRcm policy creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -15698,7 +17461,7 @@ def __init__( class InMageRcmPolicyDetails(PolicyProviderSpecificDetails): """InMageRcm specific policy details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -15755,7 +17518,7 @@ def __init__( self.enable_multi_vm_sync = enable_multi_vm_sync -class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InMageRcmProtectedDiskDetails(_serialization.Model): """InMageRcm protected disk details. Variables are only populated by the server, and will be ignored when sending a request. @@ -15768,6 +17531,9 @@ class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=to :vartype is_os_disk: str :ivar capacity_in_bytes: The disk capacity in bytes. :vartype capacity_in_bytes: int + :ivar disk_state: The disk state. Known values are: "Unavailable", "InitialReplicationPending", + "InitialReplicationFailed", and "Protected". + :vartype disk_state: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskState :ivar log_storage_account_id: The log storage account ARM Id. :vartype log_storage_account_id: str :ivar disk_encryption_set_id: The DiskEncryptionSet ARM Id. @@ -15778,8 +17544,8 @@ class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=to :vartype seed_blob_uri: str :ivar target_managed_disk_id: The ARM Id of the target managed disk. :vartype target_managed_disk_id: str - :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar data_pending_in_log_data_store_in_mb: The data pending in log data store in MB. :vartype data_pending_in_log_data_store_in_mb: float @@ -15792,6 +17558,16 @@ class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=to :vartype ir_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmSyncDetails :ivar resync_details: The resync details. :vartype resync_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmSyncDetails + :ivar custom_target_disk_name: The custom target Azure disk name. + :vartype custom_target_disk_name: str + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -15799,6 +17575,7 @@ class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=to "disk_name": {"readonly": True}, "is_os_disk": {"readonly": True}, "capacity_in_bytes": {"readonly": True}, + "disk_state": {"readonly": True}, "log_storage_account_id": {"readonly": True}, "disk_encryption_set_id": {"readonly": True}, "seed_managed_disk_id": {"readonly": True}, @@ -15814,6 +17591,7 @@ class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=to "disk_name": {"key": "diskName", "type": "str"}, "is_os_disk": {"key": "isOSDisk", "type": "str"}, "capacity_in_bytes": {"key": "capacityInBytes", "type": "int"}, + "disk_state": {"key": "diskState", "type": "str"}, "log_storage_account_id": {"key": "logStorageAccountId", "type": "str"}, "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, "seed_managed_disk_id": {"key": "seedManagedDiskId", "type": "str"}, @@ -15825,6 +17603,11 @@ class InMageRcmProtectedDiskDetails(_serialization.Model): # pylint: disable=to "is_initial_replication_complete": {"key": "isInitialReplicationComplete", "type": "str"}, "ir_details": {"key": "irDetails", "type": "InMageRcmSyncDetails"}, "resync_details": {"key": "resyncDetails", "type": "InMageRcmSyncDetails"}, + "custom_target_disk_name": {"key": "customTargetDiskName", "type": "str"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -15833,41 +17616,64 @@ def __init__( disk_type: Optional[Union[str, "_models.DiskAccountType"]] = None, ir_details: Optional["_models.InMageRcmSyncDetails"] = None, resync_details: Optional["_models.InMageRcmSyncDetails"] = None, + custom_target_disk_name: Optional[str] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ - :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword ir_details: The initial replication details. :paramtype ir_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmSyncDetails :keyword resync_details: The resync details. :paramtype resync_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmSyncDetails - """ - super().__init__(**kwargs) - self.disk_id = None - self.disk_name = None - self.is_os_disk = None - self.capacity_in_bytes = None - self.log_storage_account_id = None - self.disk_encryption_set_id = None - self.seed_managed_disk_id = None - self.seed_blob_uri = None - self.target_managed_disk_id = None + :keyword custom_target_disk_name: The custom target Azure disk name. + :paramtype custom_target_disk_name: str + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int + """ + super().__init__(**kwargs) + self.disk_id: Optional[str] = None + self.disk_name: Optional[str] = None + self.is_os_disk: Optional[str] = None + self.capacity_in_bytes: Optional[int] = None + self.disk_state: Optional[Union[str, "_models.DiskState"]] = None + self.log_storage_account_id: Optional[str] = None + self.disk_encryption_set_id: Optional[str] = None + self.seed_managed_disk_id: Optional[str] = None + self.seed_blob_uri: Optional[str] = None + self.target_managed_disk_id: Optional[str] = None self.disk_type = disk_type - self.data_pending_in_log_data_store_in_mb = None - self.data_pending_at_source_agent_in_mb = None - self.is_initial_replication_complete = None + self.data_pending_in_log_data_store_in_mb: Optional[float] = None + self.data_pending_at_source_agent_in_mb: Optional[float] = None + self.is_initial_replication_complete: Optional[str] = None self.ir_details = ir_details self.resync_details = resync_details + self.custom_target_disk_name = custom_target_disk_name + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class InMageRcmProtectionContainerMappingDetails(ProtectionContainerMappingProviderSpecificDetails): +class InMageRcmProtectionContainerMappingDetails( + ProtectionContainerMappingProviderSpecificDetails +): # pylint: disable=name-too-long """InMageRcm provider specific container mapping details. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -15890,7 +17696,7 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" - self.enable_agent_auto_upgrade = None + self.enable_agent_auto_upgrade: Optional[str] = None class InMageRcmRecoveryPointDetails(ProviderSpecificRecoveryPointDetails): @@ -15898,7 +17704,7 @@ class InMageRcmRecoveryPointDetails(ProviderSpecificRecoveryPointDetails): Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the provider type. Required. :vartype instance_type: str @@ -15921,15 +17727,15 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" - self.is_multi_vm_sync_point = None + self.is_multi_vm_sync_point: Optional[str] = None -class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylint: disable=too-many-instance-attributes +class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): """InMageRcm provider specific details. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -15961,6 +17767,10 @@ class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylin :vartype target_generation: str :ivar license_type: License Type of the VM to be used. :vartype license_type: str + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :ivar storage_account_id: The replication storage account ARM Id. This is applicable only for the blob based replication test hook. :vartype storage_account_id: str @@ -16040,6 +17850,9 @@ class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylin :ivar protected_disks: The list of protected disks. :vartype protected_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmProtectedDiskDetails] + :ivar unprotected_disks: The list of unprotected disks. + :vartype unprotected_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmUnProtectedDiskDetails] :ivar is_last_upgrade_successful: A value indicating whether last agent upgrade was successful or not. :vartype is_last_upgrade_successful: str @@ -16060,6 +17873,27 @@ class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylin :ivar discovered_vm_details: The discovered VM details. :vartype discovered_vm_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmDiscoveredProtectedVmDetails + :ivar target_vm_tags: The target VM tags. + :vartype target_vm_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar seed_managed_disk_tags: The tags for the seed managed disks. + :vartype seed_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar target_managed_disk_tags: The tags for the target managed disks. + :vartype target_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar target_nic_tags: The tags for the target NICs. + :vartype target_nic_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar sql_server_license_type: The SQL Server license type. + :vartype sql_server_license_type: str + :ivar supported_os_versions: A value indicating the inplace OS Upgrade version. + :vartype supported_os_versions: list[str] + :ivar os_name: The OS name associated with VM. + :vartype os_name: str + :ivar target_vm_security_profile: The target VM security profile. + :vartype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties """ _validation = { @@ -16117,6 +17951,7 @@ class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylin "primary_nic_ip_address": {"key": "primaryNicIpAddress", "type": "str"}, "target_generation": {"key": "targetGeneration", "type": "str"}, "license_type": {"key": "licenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, "storage_account_id": {"key": "storageAccountId", "type": "str"}, "target_vm_name": {"key": "targetVmName", "type": "str"}, "target_vm_size": {"key": "targetVmSize", "type": "str"}, @@ -16148,6 +17983,7 @@ class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylin "agent_upgrade_job_id": {"key": "agentUpgradeJobId", "type": "str"}, "agent_upgrade_attempt_to_version": {"key": "agentUpgradeAttemptToVersion", "type": "str"}, "protected_disks": {"key": "protectedDisks", "type": "[InMageRcmProtectedDiskDetails]"}, + "unprotected_disks": {"key": "unprotectedDisks", "type": "[InMageRcmUnProtectedDiskDetails]"}, "is_last_upgrade_successful": {"key": "isLastUpgradeSuccessful", "type": "str"}, "is_agent_registration_successful_after_failover": { "key": "isAgentRegistrationSuccessfulAfterFailover", @@ -16164,12 +18000,21 @@ class InMageRcmReplicationDetails(ReplicationProviderSpecificSettings): # pylin }, "vm_nics": {"key": "vmNics", "type": "[InMageRcmNicDetails]"}, "discovered_vm_details": {"key": "discoveredVmDetails", "type": "InMageRcmDiscoveredProtectedVmDetails"}, + "target_vm_tags": {"key": "targetVmTags", "type": "[UserCreatedResourceTag]"}, + "seed_managed_disk_tags": {"key": "seedManagedDiskTags", "type": "[UserCreatedResourceTag]"}, + "target_managed_disk_tags": {"key": "targetManagedDiskTags", "type": "[UserCreatedResourceTag]"}, + "target_nic_tags": {"key": "targetNicTags", "type": "[UserCreatedResourceTag]"}, + "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "supported_os_versions": {"key": "supportedOSVersions", "type": "[str]"}, + "os_name": {"key": "osName", "type": "str"}, + "target_vm_security_profile": {"key": "targetVmSecurityProfile", "type": "SecurityProfileProperties"}, } def __init__( # pylint: disable=too-many-locals self, *, license_type: Optional[str] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, target_vm_name: Optional[str] = None, target_vm_size: Optional[str] = None, target_resource_group_id: Optional[str] = None, @@ -16181,6 +18026,7 @@ def __init__( # pylint: disable=too-many-locals target_network_id: Optional[str] = None, test_network_id: Optional[str] = None, protected_disks: Optional[List["_models.InMageRcmProtectedDiskDetails"]] = None, + unprotected_disks: Optional[List["_models.InMageRcmUnProtectedDiskDetails"]] = None, mobility_agent_details: Optional["_models.InMageRcmMobilityAgentDetails"] = None, last_agent_upgrade_error_details: Optional[List["_models.InMageRcmLastAgentUpgradeErrorDetails"]] = None, agent_upgrade_blocking_error_details: Optional[ @@ -16188,11 +18034,23 @@ def __init__( # pylint: disable=too-many-locals ] = None, vm_nics: Optional[List["_models.InMageRcmNicDetails"]] = None, discovered_vm_details: Optional["_models.InMageRcmDiscoveredProtectedVmDetails"] = None, + target_vm_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + seed_managed_disk_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + target_managed_disk_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + target_nic_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + sql_server_license_type: Optional[str] = None, + supported_os_versions: Optional[List[str]] = None, + os_name: Optional[str] = None, + target_vm_security_profile: Optional["_models.SecurityProfileProperties"] = None, **kwargs: Any ) -> None: """ :keyword license_type: License Type of the VM to be used. :paramtype license_type: str + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :keyword target_vm_name: Target VM name. :paramtype target_vm_name: str :keyword target_vm_size: The target VM size. @@ -16217,6 +18075,9 @@ def __init__( # pylint: disable=too-many-locals :keyword protected_disks: The list of protected disks. :paramtype protected_disks: list[~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmProtectedDiskDetails] + :keyword unprotected_disks: The list of unprotected disks. + :paramtype unprotected_disks: + list[~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmUnProtectedDiskDetails] :keyword mobility_agent_details: The mobility agent information. :paramtype mobility_agent_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmMobilityAgentDetails @@ -16231,24 +18092,46 @@ def __init__( # pylint: disable=too-many-locals :keyword discovered_vm_details: The discovered VM details. :paramtype discovered_vm_details: ~azure.mgmt.recoveryservicessiterecovery.models.InMageRcmDiscoveredProtectedVmDetails + :keyword target_vm_tags: The target VM tags. + :paramtype target_vm_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword seed_managed_disk_tags: The tags for the seed managed disks. + :paramtype seed_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword target_managed_disk_tags: The tags for the target managed disks. + :paramtype target_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword target_nic_tags: The tags for the target NICs. + :paramtype target_nic_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword sql_server_license_type: The SQL Server license type. + :paramtype sql_server_license_type: str + :keyword supported_os_versions: A value indicating the inplace OS Upgrade version. + :paramtype supported_os_versions: list[str] + :keyword os_name: The OS name associated with VM. + :paramtype os_name: str + :keyword target_vm_security_profile: The target VM security profile. + :paramtype target_vm_security_profile: + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityProfileProperties """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" - self.internal_identifier = None - self.fabric_discovery_machine_id = None - self.multi_vm_group_name = None - self.discovery_type = None - self.process_server_id = None - self.processor_core_count = None - self.allocated_memory_in_mb = None - self.process_server_name = None - self.run_as_account_id = None - self.os_type = None - self.firmware_type = None - self.primary_nic_ip_address = None - self.target_generation = None + self.internal_identifier: Optional[str] = None + self.fabric_discovery_machine_id: Optional[str] = None + self.multi_vm_group_name: Optional[str] = None + self.discovery_type: Optional[str] = None + self.process_server_id: Optional[str] = None + self.processor_core_count: Optional[int] = None + self.allocated_memory_in_mb: Optional[float] = None + self.process_server_name: Optional[str] = None + self.run_as_account_id: Optional[str] = None + self.os_type: Optional[str] = None + self.firmware_type: Optional[str] = None + self.primary_nic_ip_address: Optional[str] = None + self.target_generation: Optional[str] = None self.license_type = license_type - self.storage_account_id = None + self.linux_license_type = linux_license_type + self.storage_account_id: Optional[str] = None self.target_vm_name = target_vm_name self.target_vm_size = target_vm_size self.target_resource_group_id = target_resource_group_id @@ -16259,39 +18142,48 @@ def __init__( # pylint: disable=too-many-locals self.target_boot_diagnostics_storage_account_id = target_boot_diagnostics_storage_account_id self.target_network_id = target_network_id self.test_network_id = test_network_id - self.failover_recovery_point_id = None - self.last_recovery_point_received = None - self.last_rpo_in_seconds = None - self.last_rpo_calculated_time = None - self.last_recovery_point_id = None - self.initial_replication_progress_percentage = None - self.initial_replication_processed_bytes = None - self.initial_replication_transferred_bytes = None - self.initial_replication_progress_health = None - self.resync_progress_percentage = None - self.resync_processed_bytes = None - self.resync_transferred_bytes = None - self.resync_progress_health = None - self.resync_required = None - self.resync_state = None - self.agent_upgrade_state = None - self.last_agent_upgrade_type = None - self.agent_upgrade_job_id = None - self.agent_upgrade_attempt_to_version = None + self.failover_recovery_point_id: Optional[str] = None + self.last_recovery_point_received: Optional[datetime.datetime] = None + self.last_rpo_in_seconds: Optional[int] = None + self.last_rpo_calculated_time: Optional[datetime.datetime] = None + self.last_recovery_point_id: Optional[str] = None + self.initial_replication_progress_percentage: Optional[int] = None + self.initial_replication_processed_bytes: Optional[int] = None + self.initial_replication_transferred_bytes: Optional[int] = None + self.initial_replication_progress_health: Optional[Union[str, "_models.VmReplicationProgressHealth"]] = None + self.resync_progress_percentage: Optional[int] = None + self.resync_processed_bytes: Optional[int] = None + self.resync_transferred_bytes: Optional[int] = None + self.resync_progress_health: Optional[Union[str, "_models.VmReplicationProgressHealth"]] = None + self.resync_required: Optional[str] = None + self.resync_state: Optional[Union[str, "_models.ResyncState"]] = None + self.agent_upgrade_state: Optional[Union[str, "_models.MobilityAgentUpgradeState"]] = None + self.last_agent_upgrade_type: Optional[str] = None + self.agent_upgrade_job_id: Optional[str] = None + self.agent_upgrade_attempt_to_version: Optional[str] = None self.protected_disks = protected_disks - self.is_last_upgrade_successful = None - self.is_agent_registration_successful_after_failover = None + self.unprotected_disks = unprotected_disks + self.is_last_upgrade_successful: Optional[str] = None + self.is_agent_registration_successful_after_failover: Optional[bool] = None self.mobility_agent_details = mobility_agent_details self.last_agent_upgrade_error_details = last_agent_upgrade_error_details self.agent_upgrade_blocking_error_details = agent_upgrade_blocking_error_details self.vm_nics = vm_nics self.discovered_vm_details = discovered_vm_details + self.target_vm_tags = target_vm_tags + self.seed_managed_disk_tags = seed_managed_disk_tags + self.target_managed_disk_tags = target_managed_disk_tags + self.target_nic_tags = target_nic_tags + self.sql_server_license_type = sql_server_license_type + self.supported_os_versions = supported_os_versions + self.os_name = os_name + self.target_vm_security_profile = target_vm_security_profile class InMageRcmReprotectInput(ReverseReplicationProviderSpecificInput): """InMageRcm specific provider input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16400,20 +18292,20 @@ class InMageRcmSyncDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.progress_health = None - self.transferred_bytes = None - self.last15_minutes_transferred_bytes = None - self.last_data_transfer_time_utc = None - self.processed_bytes = None - self.start_time = None - self.last_refresh_time = None - self.progress_percentage = None + self.progress_health: Optional[Union[str, "_models.DiskReplicationProgressHealth"]] = None + self.transferred_bytes: Optional[int] = None + self.last15_minutes_transferred_bytes: Optional[int] = None + self.last_data_transfer_time_utc: Optional[str] = None + self.processed_bytes: Optional[int] = None + self.start_time: Optional[str] = None + self.last_refresh_time: Optional[str] = None + self.progress_percentage: Optional[int] = None class InMageRcmTestFailoverInput(TestFailoverProviderSpecificInput): """InMageRcm provider specific input for test failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16422,6 +18314,8 @@ class InMageRcmTestFailoverInput(TestFailoverProviderSpecificInput): :ivar recovery_point_id: The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. :vartype recovery_point_id: str + :ivar os_upgrade_version: A value indicating the inplace OS Upgrade version. + :vartype os_upgrade_version: str """ _validation = { @@ -16432,10 +18326,16 @@ class InMageRcmTestFailoverInput(TestFailoverProviderSpecificInput): "instance_type": {"key": "instanceType", "type": "str"}, "network_id": {"key": "networkId", "type": "str"}, "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, + "os_upgrade_version": {"key": "osUpgradeVersion", "type": "str"}, } def __init__( - self, *, network_id: Optional[str] = None, recovery_point_id: Optional[str] = None, **kwargs: Any + self, + *, + network_id: Optional[str] = None, + recovery_point_id: Optional[str] = None, + os_upgrade_version: Optional[str] = None, + **kwargs: Any ) -> None: """ :keyword network_id: The test network Id. @@ -16443,17 +18343,20 @@ def __init__( :keyword recovery_point_id: The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. :paramtype recovery_point_id: str + :keyword os_upgrade_version: A value indicating the inplace OS Upgrade version. + :paramtype os_upgrade_version: str """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" self.network_id = network_id self.recovery_point_id = recovery_point_id + self.os_upgrade_version = os_upgrade_version class InMageRcmUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): """InMageRcm provider specific input for unplanned failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16462,6 +18365,8 @@ class InMageRcmUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): :ivar recovery_point_id: The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. :vartype recovery_point_id: str + :ivar os_upgrade_version: A value indicating the inplace OS Upgrade version. + :vartype os_upgrade_version: str """ _validation = { @@ -16473,29 +18378,75 @@ class InMageRcmUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): "instance_type": {"key": "instanceType", "type": "str"}, "perform_shutdown": {"key": "performShutdown", "type": "str"}, "recovery_point_id": {"key": "recoveryPointId", "type": "str"}, + "os_upgrade_version": {"key": "osUpgradeVersion", "type": "str"}, } - def __init__(self, *, perform_shutdown: str, recovery_point_id: Optional[str] = None, **kwargs: Any) -> None: + def __init__( + self, + *, + perform_shutdown: str, + recovery_point_id: Optional[str] = None, + os_upgrade_version: Optional[str] = None, + **kwargs: Any + ) -> None: """ :keyword perform_shutdown: A value indicating whether VM is to be shutdown. Required. :paramtype perform_shutdown: str :keyword recovery_point_id: The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. :paramtype recovery_point_id: str + :keyword os_upgrade_version: A value indicating the inplace OS Upgrade version. + :paramtype os_upgrade_version: str """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" self.perform_shutdown = perform_shutdown self.recovery_point_id = recovery_point_id + self.os_upgrade_version = os_upgrade_version + + +class InMageRcmUnProtectedDiskDetails(_serialization.Model): + """InMageRcm un-protected disk details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar disk_id: The disk Id. + :vartype disk_id: str + :ivar disk_name: The disk name. + :vartype disk_name: str + :ivar capacity_in_bytes: The disk capacity in bytes. + :vartype capacity_in_bytes: int + """ + + _validation = { + "disk_id": {"readonly": True}, + "disk_name": {"readonly": True}, + "capacity_in_bytes": {"readonly": True}, + } + + _attribute_map = { + "disk_id": {"key": "diskId", "type": "str"}, + "disk_name": {"key": "diskName", "type": "str"}, + "capacity_in_bytes": {"key": "capacityInBytes", "type": "int"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.disk_id: Optional[str] = None + self.disk_name: Optional[str] = None + self.capacity_in_bytes: Optional[int] = None -class UpdateApplianceForReplicationProtectedItemProviderSpecificInput(_serialization.Model): +class UpdateApplianceForReplicationProtectedItemProviderSpecificInput( + _serialization.Model +): # pylint: disable=name-too-long """Update replication protected item provider specific input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: InMageRcmUpdateApplianceForReplicationProtectedItemInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16519,10 +18470,10 @@ def __init__(self, **kwargs: Any) -> None: class InMageRcmUpdateApplianceForReplicationProtectedItemInput( UpdateApplianceForReplicationProtectedItemProviderSpecificInput -): +): # pylint: disable=name-too-long """InMageRcm provider specific input to update appliance for replication protected item. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16552,7 +18503,7 @@ def __init__(self, *, run_as_account_id: Optional[str] = None, **kwargs: Any) -> class InMageRcmUpdateContainerMappingInput(ReplicationProviderSpecificUpdateContainerMappingInput): """InMageRcm update protection container mapping. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16584,10 +18535,10 @@ def __init__(self, *, enable_agent_auto_upgrade: str, **kwargs: Any) -> None: class InMageRcmUpdateReplicationProtectedItemInput( UpdateReplicationProtectedItemProviderInput -): # pylint: disable=too-many-instance-attributes +): # pylint: disable=name-too-long """InMageRcm provider specific input to update replication protected item. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -16615,6 +18566,25 @@ class InMageRcmUpdateReplicationProtectedItemInput( :ivar license_type: The license type. Known values are: "NotSpecified", "NoLicenseType", and "WindowsServer". :vartype license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.LicenseType + :ivar sql_server_license_type: The SQL Server license type. Known values are: "NotSpecified", + "NoLicenseType", "PAYG", and "AHUB". + :vartype sql_server_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str + :ivar target_vm_tags: The target VM tags. + :vartype target_vm_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar target_managed_disk_tags: The tags for the target managed disks. + :vartype target_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :ivar target_nic_tags: The tags for the target NICs. + :vartype target_nic_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] """ _validation = { @@ -16634,6 +18604,12 @@ class InMageRcmUpdateReplicationProtectedItemInput( "test_network_id": {"key": "testNetworkId", "type": "str"}, "vm_nics": {"key": "vmNics", "type": "[InMageRcmNicInput]"}, "license_type": {"key": "licenseType", "type": "str"}, + "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, + "target_vm_tags": {"key": "targetVmTags", "type": "[UserCreatedResourceTag]"}, + "target_managed_disk_tags": {"key": "targetManagedDiskTags", "type": "[UserCreatedResourceTag]"}, + "target_nic_tags": {"key": "targetNicTags", "type": "[UserCreatedResourceTag]"}, } def __init__( @@ -16650,6 +18626,12 @@ def __init__( test_network_id: Optional[str] = None, vm_nics: Optional[List["_models.InMageRcmNicInput"]] = None, license_type: Optional[Union[str, "_models.LicenseType"]] = None, + sql_server_license_type: Optional[Union[str, "_models.SqlServerLicenseType"]] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, + user_selected_os_name: Optional[str] = None, + target_vm_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + target_managed_disk_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, + target_nic_tags: Optional[List["_models.UserCreatedResourceTag"]] = None, **kwargs: Any ) -> None: """ @@ -16677,6 +18659,25 @@ def __init__( :keyword license_type: The license type. Known values are: "NotSpecified", "NoLicenseType", and "WindowsServer". :paramtype license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.LicenseType + :keyword sql_server_license_type: The SQL Server license type. Known values are: + "NotSpecified", "NoLicenseType", "PAYG", and "AHUB". + :paramtype sql_server_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str + :keyword target_vm_tags: The target VM tags. + :paramtype target_vm_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword target_managed_disk_tags: The tags for the target managed disks. + :paramtype target_managed_disk_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] + :keyword target_nic_tags: The tags for the target NICs. + :paramtype target_nic_tags: + list[~azure.mgmt.recoveryservicessiterecovery.models.UserCreatedResourceTag] """ super().__init__(**kwargs) self.instance_type: str = "InMageRcm" @@ -16691,12 +18692,18 @@ def __init__( self.test_network_id = test_network_id self.vm_nics = vm_nics self.license_type = license_type + self.sql_server_license_type = sql_server_license_type + self.linux_license_type = linux_license_type + self.user_selected_os_name = user_selected_os_name + self.target_vm_tags = target_vm_tags + self.target_managed_disk_tags = target_managed_disk_tags + self.target_nic_tags = target_nic_tags -class InMageReplicationDetails(ReplicationProviderSpecificSettings): # pylint: disable=too-many-instance-attributes +class InMageReplicationDetails(ReplicationProviderSpecificSettings): """InMage provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -17024,7 +19031,7 @@ def __init__( # pylint: disable=too-many-locals class InMageReprotectInput(ReverseReplicationProviderSpecificInput): """InMageAzureV2 specific provider input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -17114,7 +19121,7 @@ def __init__( class InMageTestFailoverInput(TestFailoverProviderSpecificInput): """Provider specific input for InMage test failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -17166,7 +19173,7 @@ def __init__( class InMageUnplannedFailoverInput(UnplannedFailoverProviderSpecificInput): """Provider specific input for InMage unplanned failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -17250,7 +19257,7 @@ def __init__( self.only_exclude_if_single_volume = only_exclude_if_single_volume -class InnerHealthError(_serialization.Model): # pylint: disable=too-many-instance-attributes +class InnerHealthError(_serialization.Model): """Implements InnerHealthError class. HealthError object has a list of InnerHealthErrors as child errors. InnerHealthError is used because this will prevent an infinite loop of structures when Hydra tries to auto-generate the contract. We are exposing the related health errors as inner @@ -17420,7 +19427,7 @@ def __init__( self.protocol = protocol -class IPConfigDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class IPConfigDetails(_serialization.Model): """IPConfigDetails. :ivar name: @@ -17543,7 +19550,7 @@ def __init__( self.tfo_lb_backend_address_pool_ids = tfo_lb_backend_address_pool_ids -class IPConfigInputDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class IPConfigInputDetails(_serialization.Model): """IPConfigInputDetails. :ivar ip_config_name: @@ -17824,7 +19831,7 @@ def __init__( self.task_id = task_id -class JobProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class JobProperties(_serialization.Model): """Job custom data details. :ivar activity_id: The activity id. @@ -18027,7 +20034,7 @@ def __init__( class JobStatusEventDetails(EventSpecificDetails): """Model class for event details of a job status event. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -18236,10 +20243,50 @@ def __init__( self.logical_network_definitions_status = logical_network_definitions_status +class ManagedRunCommandScriptInput(_serialization.Model): + """Managed RunCommand script input. + + All required parameters must be populated in order to send to server. + + :ivar step_name: The step name. Required. + :vartype step_name: str + :ivar script_url: The script url. Required. + :vartype script_url: str + :ivar script_parameters: The script parameters. Required. + :vartype script_parameters: str + """ + + _validation = { + "step_name": {"required": True}, + "script_url": {"required": True}, + "script_parameters": {"required": True}, + } + + _attribute_map = { + "step_name": {"key": "stepName", "type": "str"}, + "script_url": {"key": "scriptUrl", "type": "str"}, + "script_parameters": {"key": "scriptParameters", "type": "str"}, + } + + def __init__(self, *, step_name: str, script_url: str, script_parameters: str, **kwargs: Any) -> None: + """ + :keyword step_name: The step name. Required. + :paramtype step_name: str + :keyword script_url: The script url. Required. + :paramtype script_url: str + :keyword script_parameters: The script parameters. Required. + :paramtype script_parameters: str + """ + super().__init__(**kwargs) + self.step_name = step_name + self.script_url = script_url + self.script_parameters = script_parameters + + class ManualActionTaskDetails(TaskTypeDetails): """This class represents the manual action task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -18338,18 +20385,18 @@ class MarsAgentDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.fabric_object_id = None - self.fqdn = None - self.version = None - self.last_heartbeat_utc = None - self.health = None - self.health_errors = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.fabric_object_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None -class MasterTargetServer(_serialization.Model): # pylint: disable=too-many-instance-attributes +class MasterTargetServer(_serialization.Model): """Details of a Master Target Server. :ivar id: The server Id. @@ -18501,7 +20548,7 @@ def __init__( class MigrateInput(_serialization.Model): """Input for migrate. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Migrate input properties. Required. :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.MigrateInputProperties @@ -18527,7 +20574,7 @@ def __init__(self, *, properties: "_models.MigrateInputProperties", **kwargs: An class MigrateInputProperties(_serialization.Model): """Migrate input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar provider_specific_details: The provider specific details. Required. :vartype provider_specific_details: @@ -18558,7 +20605,7 @@ class MigrateProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtMigrateInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -18656,7 +20703,7 @@ def __init__( self.next_link = next_link -class MigrationItemProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class MigrationItemProperties(_serialization.Model): """Migration item properties. Variables are only populated by the server, and will be ignored when sending a request. @@ -18771,25 +20818,25 @@ def __init__( ~azure.mgmt.recoveryservicessiterecovery.models.MigrationProviderSpecificSettings """ super().__init__(**kwargs) - self.machine_name = None - self.policy_id = None - self.policy_friendly_name = None - self.recovery_services_provider_id = None - self.replication_status = None - self.migration_state = None - self.migration_state_description = None - self.last_test_migration_time = None - self.last_test_migration_status = None - self.last_migration_time = None - self.last_migration_status = None - self.test_migrate_state = None - self.test_migrate_state_description = None - self.health = None - self.health_errors = None - self.allowed_operations = None - self.current_job = None - self.critical_job_history = None - self.event_correlation_id = None + self.machine_name: Optional[str] = None + self.policy_id: Optional[str] = None + self.policy_friendly_name: Optional[str] = None + self.recovery_services_provider_id: Optional[str] = None + self.replication_status: Optional[str] = None + self.migration_state: Optional[Union[str, "_models.MigrationState"]] = None + self.migration_state_description: Optional[str] = None + self.last_test_migration_time: Optional[datetime.datetime] = None + self.last_test_migration_status: Optional[str] = None + self.last_migration_time: Optional[datetime.datetime] = None + self.last_migration_status: Optional[str] = None + self.test_migrate_state: Optional[Union[str, "_models.TestMigrationState"]] = None + self.test_migrate_state_description: Optional[str] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None + self.allowed_operations: Optional[List[Union[str, "_models.MigrationItemOperation"]]] = None + self.current_job: Optional["_models.CurrentJobDetails"] = None + self.critical_job_history: Optional[List["_models.CriticalJobHistoryDetails"]] = None + self.event_correlation_id: Optional[str] = None self.provider_specific_details = provider_specific_details @@ -18838,7 +20885,7 @@ class MigrationProviderSpecificSettings(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtMigrationDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the instance type. Required. :vartype instance_type: str @@ -18968,8 +21015,8 @@ class MigrationRecoveryPointProperties(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.recovery_point_time = None - self.recovery_point_type = None + self.recovery_point_time: Optional[datetime.datetime] = None + self.recovery_point_type: Optional[Union[str, "_models.MigrationRecoveryPointType"]] = None class MobilityServiceUpdate(_serialization.Model): @@ -19298,7 +21345,7 @@ def __init__( class NewProtectionProfile(ProtectionProfileCustomDetails): """New Protection profile input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -19372,7 +21419,7 @@ def __init__( class NewRecoveryVirtualNetwork(RecoveryVirtualNetworkCustomDetails): """Recovery virtual network input to create new virtual network from given source network. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar resource_type: The class type. Required. :vartype resource_type: str @@ -19537,6 +21584,8 @@ class OSDetails(_serialization.Model): :vartype o_s_major_version: str :ivar o_s_minor_version: The OS Minor Version. :vartype o_s_minor_version: str + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str """ _attribute_map = { @@ -19546,6 +21595,7 @@ class OSDetails(_serialization.Model): "o_s_version": {"key": "oSVersion", "type": "str"}, "o_s_major_version": {"key": "oSMajorVersion", "type": "str"}, "o_s_minor_version": {"key": "oSMinorVersion", "type": "str"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, } def __init__( @@ -19557,6 +21607,7 @@ def __init__( o_s_version: Optional[str] = None, o_s_major_version: Optional[str] = None, o_s_minor_version: Optional[str] = None, + user_selected_os_name: Optional[str] = None, **kwargs: Any ) -> None: """ @@ -19572,6 +21623,8 @@ def __init__( :paramtype o_s_major_version: str :keyword o_s_minor_version: The OS Minor Version. :paramtype o_s_minor_version: str + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str """ super().__init__(**kwargs) self.os_type = os_type @@ -19580,6 +21633,7 @@ def __init__( self.o_s_version = o_s_version self.o_s_major_version = o_s_major_version self.o_s_minor_version = o_s_minor_version + self.user_selected_os_name = user_selected_os_name class OSDiskDetails(_serialization.Model): @@ -19645,8 +21699,8 @@ class OSUpgradeSupportedVersions(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.supported_source_os_version = None - self.supported_target_os_versions = None + self.supported_source_os_version: Optional[str] = None + self.supported_target_os_versions: Optional[List[str]] = None class OSVersionWrapper(_serialization.Model): @@ -19678,7 +21732,7 @@ def __init__(self, *, version: Optional[str] = None, service_pack: Optional[str] class PauseReplicationInput(_serialization.Model): """Pause replication input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Pause replication input properties. Required. :vartype properties: @@ -19706,7 +21760,7 @@ def __init__(self, *, properties: "_models.PauseReplicationInputProperties", **k class PauseReplicationInputProperties(_serialization.Model): """Pause replication input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -19894,7 +21948,7 @@ def __init__( self.provider_specific_details = provider_specific_details -class ProcessServer(_serialization.Model): # pylint: disable=too-many-instance-attributes +class ProcessServer(_serialization.Model): """Details of the Process Server. Variables are only populated by the server, and will be ignored when sending a request. @@ -20151,17 +22205,17 @@ def __init__( # pylint: disable=too-many-locals self.health_errors = health_errors self.agent_expiry_date = agent_expiry_date self.agent_version_details = agent_version_details - self.health = None - self.ps_stats_refresh_time = None - self.throughput_upload_pending_data_in_bytes = None - self.throughput_in_m_bps = None - self.throughput_in_bytes = None - self.throughput_status = None - self.mars_communication_status = None - self.mars_registration_status = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.ps_stats_refresh_time: Optional[datetime.datetime] = None + self.throughput_upload_pending_data_in_bytes: Optional[int] = None + self.throughput_in_m_bps: Optional[int] = None + self.throughput_in_bytes: Optional[int] = None + self.throughput_status: Optional[str] = None + self.mars_communication_status: Optional[str] = None + self.mars_registration_status: Optional[str] = None -class ProcessServerDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class ProcessServerDetails(_serialization.Model): """Process server details. Variables are only populated by the server, and will be ignored when sending a request. @@ -20306,35 +22360,35 @@ class ProcessServerDetails(_serialization.Model): # pylint: disable=too-many-in def __init__(self, **kwargs: Any) -> None: # pylint: disable=too-many-locals """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.fabric_object_id = None - self.fqdn = None - self.ip_addresses = None - self.version = None - self.last_heartbeat_utc = None - self.total_memory_in_bytes = None - self.available_memory_in_bytes = None - self.used_memory_in_bytes = None - self.memory_usage_percentage = None - self.total_space_in_bytes = None - self.available_space_in_bytes = None - self.used_space_in_bytes = None - self.free_space_percentage = None - self.throughput_upload_pending_data_in_bytes = None - self.throughput_in_bytes = None - self.processor_usage_percentage = None - self.throughput_status = None - self.system_load = None - self.system_load_status = None - self.disk_usage_status = None - self.memory_usage_status = None - self.processor_usage_status = None - self.health = None - self.health_errors = None - self.protected_item_count = None - self.historic_health = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.fabric_object_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.ip_addresses: Optional[List[str]] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.total_memory_in_bytes: Optional[int] = None + self.available_memory_in_bytes: Optional[int] = None + self.used_memory_in_bytes: Optional[int] = None + self.memory_usage_percentage: Optional[float] = None + self.total_space_in_bytes: Optional[int] = None + self.available_space_in_bytes: Optional[int] = None + self.used_space_in_bytes: Optional[int] = None + self.free_space_percentage: Optional[float] = None + self.throughput_upload_pending_data_in_bytes: Optional[int] = None + self.throughput_in_bytes: Optional[int] = None + self.processor_usage_percentage: Optional[float] = None + self.throughput_status: Optional[Union[str, "_models.RcmComponentStatus"]] = None + self.system_load: Optional[int] = None + self.system_load_status: Optional[Union[str, "_models.RcmComponentStatus"]] = None + self.disk_usage_status: Optional[Union[str, "_models.RcmComponentStatus"]] = None + self.memory_usage_status: Optional[Union[str, "_models.RcmComponentStatus"]] = None + self.processor_usage_status: Optional[Union[str, "_models.RcmComponentStatus"]] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None + self.protected_item_count: Optional[int] = None + self.historic_health: Optional[Union[str, "_models.ProtectionHealth"]] = None class ProtectableItem(Resource): @@ -20504,6 +22558,45 @@ def __init__(self, *, state: Optional[str] = None, **kwargs: Any) -> None: self.state = state +class ProtectedClustersQueryParameter(_serialization.Model): + """Query parameter to enumerate protected clusters. + + :ivar source_fabric_name: The source fabric name filter. + :vartype source_fabric_name: str + :ivar source_fabric_location: The source fabric location filter. + :vartype source_fabric_location: str + :ivar instance_type: The replication provider type. + :vartype instance_type: str + """ + + _attribute_map = { + "source_fabric_name": {"key": "sourceFabricName", "type": "str"}, + "source_fabric_location": {"key": "sourceFabricLocation", "type": "str"}, + "instance_type": {"key": "instanceType", "type": "str"}, + } + + def __init__( + self, + *, + source_fabric_name: Optional[str] = None, + source_fabric_location: Optional[str] = None, + instance_type: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword source_fabric_name: The source fabric name filter. + :paramtype source_fabric_name: str + :keyword source_fabric_location: The source fabric location filter. + :paramtype source_fabric_location: str + :keyword instance_type: The replication provider type. + :paramtype instance_type: str + """ + super().__init__(**kwargs) + self.source_fabric_name = source_fabric_name + self.source_fabric_location = source_fabric_location + self.instance_type = instance_type + + class ProtectedItemsQueryParameter(_serialization.Model): """Query parameter to enumerate protected items. @@ -20684,7 +22777,7 @@ class ProtectionContainerFabricSpecificDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.instance_type = None + self.instance_type: Optional[str] = None class ProtectionContainerMapping(Resource): @@ -20771,7 +22864,7 @@ def __init__( self.next_link = next_link -class ProtectionContainerMappingProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class ProtectionContainerMappingProperties(_serialization.Model): """Protection container mapping properties. :ivar target_protection_container_id: Paired protection container ARM ID. @@ -21049,15 +23142,15 @@ class PushInstallerDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.fabric_object_id = None - self.fqdn = None - self.version = None - self.last_heartbeat_utc = None - self.health = None - self.health_errors = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.fabric_object_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None class RcmProxyDetails(_serialization.Model): @@ -21117,16 +23210,16 @@ class RcmProxyDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.fabric_object_id = None - self.fqdn = None - self.client_authentication_type = None - self.version = None - self.last_heartbeat_utc = None - self.health = None - self.health_errors = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.fabric_object_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.client_authentication_type: Optional[str] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None class RecoveryPlan(Resource): @@ -21183,7 +23276,7 @@ class RecoveryPlanProviderSpecificDetails(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: RecoveryPlanA2ADetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -21208,7 +23301,7 @@ def __init__(self, **kwargs: Any) -> None: class RecoveryPlanA2ADetails(RecoveryPlanProviderSpecificDetails): """Recovery plan A2A specific details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -21265,7 +23358,7 @@ def __init__( self.recovery_extended_location = recovery_extended_location -class RecoveryPlanProviderSpecificFailoverInput(_serialization.Model): +class RecoveryPlanProviderSpecificFailoverInput(_serialization.Model): # pylint: disable=name-too-long """Recovery plan provider specific failover input. You probably want to use the sub-classes and not this class directly. Known sub-classes are: @@ -21274,7 +23367,7 @@ class RecoveryPlanProviderSpecificFailoverInput(_serialization.Model): RecoveryPlanInMageAzureV2FailoverInput, RecoveryPlanInMageRcmFailoverInput, RecoveryPlanInMageRcmFailbackFailoverInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21309,7 +23402,7 @@ def __init__(self, **kwargs: Any) -> None: class RecoveryPlanA2AFailoverInput(RecoveryPlanProviderSpecificFailoverInput): """Recovery plan A2A failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21374,7 +23467,7 @@ class RecoveryPlanProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: RecoveryPlanA2AInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -21399,7 +23492,7 @@ def __init__(self, **kwargs: Any) -> None: class RecoveryPlanA2AInput(RecoveryPlanProviderSpecificInput): """Recovery plan A2A input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -21459,7 +23552,7 @@ def __init__( class RecoveryPlanAction(_serialization.Model): """Recovery plan action details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar action_name: The action name. Required. :vartype action_name: str @@ -21524,7 +23617,7 @@ class RecoveryPlanActionDetails(_serialization.Model): RecoveryPlanAutomationRunbookActionDetails, RecoveryPlanManualActionDetails, RecoveryPlanScriptActionDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of action details (see RecoveryPlanActionDetailsTypes enum for possible values). Required. @@ -21553,10 +23646,10 @@ def __init__(self, **kwargs: Any) -> None: self.instance_type: Optional[str] = None -class RecoveryPlanAutomationRunbookActionDetails(RecoveryPlanActionDetails): +class RecoveryPlanAutomationRunbookActionDetails(RecoveryPlanActionDetails): # pylint: disable=name-too-long """Recovery plan Automation runbook action details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of action details (see RecoveryPlanActionDetailsTypes enum for possible values). Required. @@ -21639,7 +23732,7 @@ def __init__( class RecoveryPlanGroup(_serialization.Model): """Recovery plan group details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar group_type: The group type. Required. Known values are: "Shutdown", "Boot", and "Failover". @@ -21704,7 +23797,7 @@ class RecoveryPlanGroupTaskDetails(GroupTaskDetails): You probably want to use the sub-classes and not this class directly. Known sub-classes are: RecoveryPlanShutdownGroupTaskDetails - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -21758,10 +23851,12 @@ def __init__( self.rp_group_type = rp_group_type -class RecoveryPlanHyperVReplicaAzureFailbackInput(RecoveryPlanProviderSpecificFailoverInput): +class RecoveryPlanHyperVReplicaAzureFailbackInput( + RecoveryPlanProviderSpecificFailoverInput +): # pylint: disable=name-too-long """Recovery plan HVR Azure failback input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21810,10 +23905,12 @@ def __init__( self.recovery_vm_creation_option = recovery_vm_creation_option -class RecoveryPlanHyperVReplicaAzureFailoverInput(RecoveryPlanProviderSpecificFailoverInput): +class RecoveryPlanHyperVReplicaAzureFailoverInput( + RecoveryPlanProviderSpecificFailoverInput +): # pylint: disable=name-too-long """Recovery plan HVR Azure failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21866,7 +23963,7 @@ def __init__( class RecoveryPlanInMageAzureV2FailoverInput(RecoveryPlanProviderSpecificFailoverInput): """Recovery plan InMageAzureV2 failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21915,7 +24012,7 @@ def __init__( class RecoveryPlanInMageFailoverInput(RecoveryPlanProviderSpecificFailoverInput): """Recovery plan InMage failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21947,10 +24044,12 @@ def __init__(self, *, recovery_point_type: Union[str, "_models.RpInMageRecoveryP self.recovery_point_type = recovery_point_type -class RecoveryPlanInMageRcmFailbackFailoverInput(RecoveryPlanProviderSpecificFailoverInput): +class RecoveryPlanInMageRcmFailbackFailoverInput( + RecoveryPlanProviderSpecificFailoverInput +): # pylint: disable=name-too-long """Recovery plan InMageRcmFailback failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -21999,7 +24098,7 @@ def __init__( class RecoveryPlanInMageRcmFailoverInput(RecoveryPlanProviderSpecificFailoverInput): """Recovery plan InMageRcm failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -22048,7 +24147,7 @@ def __init__( class RecoveryPlanManualActionDetails(RecoveryPlanActionDetails): """Recovery plan manual action details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of action details (see RecoveryPlanActionDetailsTypes enum for possible values). Required. @@ -22079,7 +24178,7 @@ def __init__(self, *, description: Optional[str] = None, **kwargs: Any) -> None: class RecoveryPlanPlannedFailoverInput(_serialization.Model): """Recovery plan planned failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: The recovery plan planned failover input properties. Required. :vartype properties: @@ -22104,10 +24203,10 @@ def __init__(self, *, properties: "_models.RecoveryPlanPlannedFailoverInputPrope self.properties = properties -class RecoveryPlanPlannedFailoverInputProperties(_serialization.Model): +class RecoveryPlanPlannedFailoverInputProperties(_serialization.Model): # pylint: disable=name-too-long """Recovery plan planned failover input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar failover_direction: The failover direction. Required. Known values are: "PrimaryToRecovery" and "RecoveryToPrimary". @@ -22151,7 +24250,7 @@ def __init__( self.provider_specific_details = provider_specific_details -class RecoveryPlanProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class RecoveryPlanProperties(_serialization.Model): """Recovery plan properties. :ivar friendly_name: The friendly name. @@ -22323,7 +24422,7 @@ def __init__( class RecoveryPlanScriptActionDetails(RecoveryPlanActionDetails): """Recovery plan script action details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of action details (see RecoveryPlanActionDetailsTypes enum for possible values). Required. @@ -22379,7 +24478,7 @@ def __init__( class RecoveryPlanShutdownGroupTaskDetails(RecoveryPlanGroupTaskDetails): """This class represents the recovery plan shutdown group task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -22431,7 +24530,7 @@ def __init__( class RecoveryPlanTestFailoverCleanupInput(_serialization.Model): """Recovery plan test failover cleanup input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: The recovery plan test failover cleanup input properties. Required. :vartype properties: @@ -22456,7 +24555,7 @@ def __init__(self, *, properties: "_models.RecoveryPlanTestFailoverCleanupInputP self.properties = properties -class RecoveryPlanTestFailoverCleanupInputProperties(_serialization.Model): +class RecoveryPlanTestFailoverCleanupInputProperties(_serialization.Model): # pylint: disable=name-too-long """Recovery plan test failover cleanup input properties. :ivar comments: The test failover cleanup comments. @@ -22483,7 +24582,7 @@ def __init__(self, *, comments: Optional[str] = None, **kwargs: Any) -> None: class RecoveryPlanTestFailoverInput(_serialization.Model): """Recovery plan test failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: The recovery plan test failover input properties. Required. :vartype properties: @@ -22511,7 +24610,7 @@ def __init__(self, *, properties: "_models.RecoveryPlanTestFailoverInputProperti class RecoveryPlanTestFailoverInputProperties(_serialization.Model): """Recovery plan test failover input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar failover_direction: The failover direction. Required. Known values are: "PrimaryToRecovery" and "RecoveryToPrimary". @@ -22573,7 +24672,7 @@ def __init__( class RecoveryPlanUnplannedFailoverInput(_serialization.Model): """Recovery plan unplanned failover input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: The recovery plan unplanned failover input properties. Required. :vartype properties: @@ -22598,10 +24697,10 @@ def __init__(self, *, properties: "_models.RecoveryPlanUnplannedFailoverInputPro self.properties = properties -class RecoveryPlanUnplannedFailoverInputProperties(_serialization.Model): +class RecoveryPlanUnplannedFailoverInputProperties(_serialization.Model): # pylint: disable=name-too-long """Recovery plan unplanned failover input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar failover_direction: The failover direction. Required. Known values are: "PrimaryToRecovery" and "RecoveryToPrimary". @@ -22857,7 +24956,7 @@ def __init__( self.next_link = next_link -class RecoveryServicesProviderProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class RecoveryServicesProviderProperties(_serialization.Model): """Recovery services provider properties. :ivar fabric_type: Type of the site. @@ -23030,6 +25129,54 @@ def __init__( self.provider_version_details = provider_version_details +class RegisteredClusterNodes(_serialization.Model): + """Extended location of the resource. + + :ivar cluster_node_fqdn: The cluster node name. + :vartype cluster_node_fqdn: str + :ivar machine_id: The machine ID. + :vartype machine_id: str + :ivar bios_id: The BIOS ID. + :vartype bios_id: str + :ivar is_shared_disk_virtual_node: A value indicating whether this represents virtual entity + hosting all the shared disks. + :vartype is_shared_disk_virtual_node: bool + """ + + _attribute_map = { + "cluster_node_fqdn": {"key": "clusterNodeFqdn", "type": "str"}, + "machine_id": {"key": "machineId", "type": "str"}, + "bios_id": {"key": "biosId", "type": "str"}, + "is_shared_disk_virtual_node": {"key": "isSharedDiskVirtualNode", "type": "bool"}, + } + + def __init__( + self, + *, + cluster_node_fqdn: Optional[str] = None, + machine_id: Optional[str] = None, + bios_id: Optional[str] = None, + is_shared_disk_virtual_node: Optional[bool] = None, + **kwargs: Any + ) -> None: + """ + :keyword cluster_node_fqdn: The cluster node name. + :paramtype cluster_node_fqdn: str + :keyword machine_id: The machine ID. + :paramtype machine_id: str + :keyword bios_id: The BIOS ID. + :paramtype bios_id: str + :keyword is_shared_disk_virtual_node: A value indicating whether this represents virtual entity + hosting all the shared disks. + :paramtype is_shared_disk_virtual_node: bool + """ + super().__init__(**kwargs) + self.cluster_node_fqdn = cluster_node_fqdn + self.machine_id = machine_id + self.bios_id = bios_id + self.is_shared_disk_virtual_node = is_shared_disk_virtual_node + + class RemoveDisksInput(_serialization.Model): """Input for remove disk(s) operation. @@ -23103,7 +25250,7 @@ def __init__( self.properties = properties -class RemoveProtectionContainerMappingInputProperties(_serialization.Model): +class RemoveProtectionContainerMappingInputProperties(_serialization.Model): # pylint: disable=name-too-long """Unpairing input properties. :ivar provider_specific_input: Provider specific input for unpairing. @@ -23230,15 +25377,15 @@ class ReplicationAgentDetails(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.fabric_object_id = None - self.fqdn = None - self.version = None - self.last_heartbeat_utc = None - self.health = None - self.health_errors = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.fabric_object_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None class ReplicationAppliance(_serialization.Model): @@ -23320,10 +25467,10 @@ class ReplicationEligibilityResults(_serialization.Model): def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.name = None - self.type = None - self.id = None - self.properties = None + self.name: Optional[str] = None + self.type: Optional[str] = None + self.id: Optional[str] = None + self.properties: Optional["_models.ReplicationEligibilityResultsProperties"] = None class ReplicationEligibilityResultsCollection(_serialization.Model): @@ -23401,7 +25548,7 @@ def __init__( self.message = message self.possible_causes = possible_causes self.recommended_action = recommended_action - self.status = None + self.status: Optional[str] = None class ReplicationEligibilityResultsProperties(_serialization.Model): @@ -23434,49 +25581,374 @@ def __init__( list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationEligibilityResultsErrorInfo] """ super().__init__(**kwargs) - self.client_request_id = None + self.client_request_id: Optional[str] = None self.errors = errors class ReplicationGroupDetails(ConfigurationSettings): """Replication group details. This will be used in case of San. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str """ - _validation = { - "instance_type": {"required": True}, - } - + _validation = { + "instance_type": {"required": True}, + } + + _attribute_map = { + "instance_type": {"key": "instanceType", "type": "str"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.instance_type: str = "ReplicationGroupDetails" + + +class ReplicationProtectedItem(Resource): + """Replication protected item. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource Id. + :vartype id: str + :ivar name: Resource Name. + :vartype name: str + :ivar type: Resource Type. + :vartype type: str + :ivar location: Resource Location. + :vartype location: str + :ivar properties: The custom data. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItemProperties + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "location": {"key": "location", "type": "str"}, + "properties": {"key": "properties", "type": "ReplicationProtectedItemProperties"}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + properties: Optional["_models.ReplicationProtectedItemProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword location: Resource Location. + :paramtype location: str + :keyword properties: The custom data. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItemProperties + """ + super().__init__(location=location, **kwargs) + self.properties = properties + + +class ReplicationProtectedItemCollection(_serialization.Model): + """Replication protected item collection. + + :ivar value: The Replication protected item details. + :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItem] + :ivar next_link: The value of next link. + :vartype next_link: str + """ + + _attribute_map = { + "value": {"key": "value", "type": "[ReplicationProtectedItem]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__( + self, + *, + value: Optional[List["_models.ReplicationProtectedItem"]] = None, + next_link: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword value: The Replication protected item details. + :paramtype value: + list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItem] + :keyword next_link: The value of next link. + :paramtype next_link: str + """ + super().__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class ReplicationProtectedItemProperties(_serialization.Model): + """Replication protected item custom data details. + + :ivar friendly_name: The name. + :vartype friendly_name: str + :ivar protected_item_type: The type of protected item type. + :vartype protected_item_type: str + :ivar protectable_item_id: The protected item ARM Id. + :vartype protectable_item_id: str + :ivar recovery_services_provider_id: The recovery provider ARM Id. + :vartype recovery_services_provider_id: str + :ivar primary_fabric_friendly_name: The friendly name of the primary fabric. + :vartype primary_fabric_friendly_name: str + :ivar primary_fabric_provider: The fabric provider of the primary fabric. + :vartype primary_fabric_provider: str + :ivar recovery_fabric_friendly_name: The friendly name of recovery fabric. + :vartype recovery_fabric_friendly_name: str + :ivar recovery_fabric_id: The Arm Id of recovery fabric. + :vartype recovery_fabric_id: str + :ivar primary_protection_container_friendly_name: The name of primary protection container + friendly name. + :vartype primary_protection_container_friendly_name: str + :ivar recovery_protection_container_friendly_name: The name of recovery container friendly + name. + :vartype recovery_protection_container_friendly_name: str + :ivar protection_state: The protection status. + :vartype protection_state: str + :ivar protection_state_description: The protection state description. + :vartype protection_state_description: str + :ivar active_location: The Current active location of the PE. + :vartype active_location: str + :ivar test_failover_state: The Test failover state. + :vartype test_failover_state: str + :ivar test_failover_state_description: The Test failover state description. + :vartype test_failover_state_description: str + :ivar switch_provider_state: The switch provider state. + :vartype switch_provider_state: str + :ivar switch_provider_state_description: The switch provider state description. + :vartype switch_provider_state_description: str + :ivar allowed_operations: The allowed operations on the Replication protected item. + :vartype allowed_operations: list[str] + :ivar replication_health: The consolidated protection health for the VM taking any issues with + SRS as well as all the replication units associated with the VM's replication group into + account. This is a string representation of the ProtectionHealth enumeration. + :vartype replication_health: str + :ivar failover_health: The consolidated failover health for the VM. + :vartype failover_health: str + :ivar health_errors: List of health errors. + :vartype health_errors: list[~azure.mgmt.recoveryservicessiterecovery.models.HealthError] + :ivar policy_id: The ID of Policy governing this PE. + :vartype policy_id: str + :ivar policy_friendly_name: The name of Policy governing this PE. + :vartype policy_friendly_name: str + :ivar last_successful_failover_time: The Last successful failover time. + :vartype last_successful_failover_time: ~datetime.datetime + :ivar last_successful_test_failover_time: The Last successful test failover time. + :vartype last_successful_test_failover_time: ~datetime.datetime + :ivar current_scenario: The current scenario. + :vartype current_scenario: + ~azure.mgmt.recoveryservicessiterecovery.models.CurrentScenarioDetails + :ivar failover_recovery_point_id: The recovery point ARM Id to which the Vm was failed over. + :vartype failover_recovery_point_id: str + :ivar provider_specific_details: The Replication provider custom settings. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProviderSpecificSettings + :ivar recovery_container_id: The recovery container Id. + :vartype recovery_container_id: str + :ivar event_correlation_id: The correlation Id for events associated with this protected item. + :vartype event_correlation_id: str + """ + _attribute_map = { - "instance_type": {"key": "instanceType", "type": "str"}, + "friendly_name": {"key": "friendlyName", "type": "str"}, + "protected_item_type": {"key": "protectedItemType", "type": "str"}, + "protectable_item_id": {"key": "protectableItemId", "type": "str"}, + "recovery_services_provider_id": {"key": "recoveryServicesProviderId", "type": "str"}, + "primary_fabric_friendly_name": {"key": "primaryFabricFriendlyName", "type": "str"}, + "primary_fabric_provider": {"key": "primaryFabricProvider", "type": "str"}, + "recovery_fabric_friendly_name": {"key": "recoveryFabricFriendlyName", "type": "str"}, + "recovery_fabric_id": {"key": "recoveryFabricId", "type": "str"}, + "primary_protection_container_friendly_name": {"key": "primaryProtectionContainerFriendlyName", "type": "str"}, + "recovery_protection_container_friendly_name": { + "key": "recoveryProtectionContainerFriendlyName", + "type": "str", + }, + "protection_state": {"key": "protectionState", "type": "str"}, + "protection_state_description": {"key": "protectionStateDescription", "type": "str"}, + "active_location": {"key": "activeLocation", "type": "str"}, + "test_failover_state": {"key": "testFailoverState", "type": "str"}, + "test_failover_state_description": {"key": "testFailoverStateDescription", "type": "str"}, + "switch_provider_state": {"key": "switchProviderState", "type": "str"}, + "switch_provider_state_description": {"key": "switchProviderStateDescription", "type": "str"}, + "allowed_operations": {"key": "allowedOperations", "type": "[str]"}, + "replication_health": {"key": "replicationHealth", "type": "str"}, + "failover_health": {"key": "failoverHealth", "type": "str"}, + "health_errors": {"key": "healthErrors", "type": "[HealthError]"}, + "policy_id": {"key": "policyId", "type": "str"}, + "policy_friendly_name": {"key": "policyFriendlyName", "type": "str"}, + "last_successful_failover_time": {"key": "lastSuccessfulFailoverTime", "type": "iso-8601"}, + "last_successful_test_failover_time": {"key": "lastSuccessfulTestFailoverTime", "type": "iso-8601"}, + "current_scenario": {"key": "currentScenario", "type": "CurrentScenarioDetails"}, + "failover_recovery_point_id": {"key": "failoverRecoveryPointId", "type": "str"}, + "provider_specific_details": {"key": "providerSpecificDetails", "type": "ReplicationProviderSpecificSettings"}, + "recovery_container_id": {"key": "recoveryContainerId", "type": "str"}, + "event_correlation_id": {"key": "eventCorrelationId", "type": "str"}, } - def __init__(self, **kwargs: Any) -> None: - """ """ + def __init__( # pylint: disable=too-many-locals + self, + *, + friendly_name: Optional[str] = None, + protected_item_type: Optional[str] = None, + protectable_item_id: Optional[str] = None, + recovery_services_provider_id: Optional[str] = None, + primary_fabric_friendly_name: Optional[str] = None, + primary_fabric_provider: Optional[str] = None, + recovery_fabric_friendly_name: Optional[str] = None, + recovery_fabric_id: Optional[str] = None, + primary_protection_container_friendly_name: Optional[str] = None, + recovery_protection_container_friendly_name: Optional[str] = None, + protection_state: Optional[str] = None, + protection_state_description: Optional[str] = None, + active_location: Optional[str] = None, + test_failover_state: Optional[str] = None, + test_failover_state_description: Optional[str] = None, + switch_provider_state: Optional[str] = None, + switch_provider_state_description: Optional[str] = None, + allowed_operations: Optional[List[str]] = None, + replication_health: Optional[str] = None, + failover_health: Optional[str] = None, + health_errors: Optional[List["_models.HealthError"]] = None, + policy_id: Optional[str] = None, + policy_friendly_name: Optional[str] = None, + last_successful_failover_time: Optional[datetime.datetime] = None, + last_successful_test_failover_time: Optional[datetime.datetime] = None, + current_scenario: Optional["_models.CurrentScenarioDetails"] = None, + failover_recovery_point_id: Optional[str] = None, + provider_specific_details: Optional["_models.ReplicationProviderSpecificSettings"] = None, + recovery_container_id: Optional[str] = None, + event_correlation_id: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword friendly_name: The name. + :paramtype friendly_name: str + :keyword protected_item_type: The type of protected item type. + :paramtype protected_item_type: str + :keyword protectable_item_id: The protected item ARM Id. + :paramtype protectable_item_id: str + :keyword recovery_services_provider_id: The recovery provider ARM Id. + :paramtype recovery_services_provider_id: str + :keyword primary_fabric_friendly_name: The friendly name of the primary fabric. + :paramtype primary_fabric_friendly_name: str + :keyword primary_fabric_provider: The fabric provider of the primary fabric. + :paramtype primary_fabric_provider: str + :keyword recovery_fabric_friendly_name: The friendly name of recovery fabric. + :paramtype recovery_fabric_friendly_name: str + :keyword recovery_fabric_id: The Arm Id of recovery fabric. + :paramtype recovery_fabric_id: str + :keyword primary_protection_container_friendly_name: The name of primary protection container + friendly name. + :paramtype primary_protection_container_friendly_name: str + :keyword recovery_protection_container_friendly_name: The name of recovery container friendly + name. + :paramtype recovery_protection_container_friendly_name: str + :keyword protection_state: The protection status. + :paramtype protection_state: str + :keyword protection_state_description: The protection state description. + :paramtype protection_state_description: str + :keyword active_location: The Current active location of the PE. + :paramtype active_location: str + :keyword test_failover_state: The Test failover state. + :paramtype test_failover_state: str + :keyword test_failover_state_description: The Test failover state description. + :paramtype test_failover_state_description: str + :keyword switch_provider_state: The switch provider state. + :paramtype switch_provider_state: str + :keyword switch_provider_state_description: The switch provider state description. + :paramtype switch_provider_state_description: str + :keyword allowed_operations: The allowed operations on the Replication protected item. + :paramtype allowed_operations: list[str] + :keyword replication_health: The consolidated protection health for the VM taking any issues + with SRS as well as all the replication units associated with the VM's replication group into + account. This is a string representation of the ProtectionHealth enumeration. + :paramtype replication_health: str + :keyword failover_health: The consolidated failover health for the VM. + :paramtype failover_health: str + :keyword health_errors: List of health errors. + :paramtype health_errors: list[~azure.mgmt.recoveryservicessiterecovery.models.HealthError] + :keyword policy_id: The ID of Policy governing this PE. + :paramtype policy_id: str + :keyword policy_friendly_name: The name of Policy governing this PE. + :paramtype policy_friendly_name: str + :keyword last_successful_failover_time: The Last successful failover time. + :paramtype last_successful_failover_time: ~datetime.datetime + :keyword last_successful_test_failover_time: The Last successful test failover time. + :paramtype last_successful_test_failover_time: ~datetime.datetime + :keyword current_scenario: The current scenario. + :paramtype current_scenario: + ~azure.mgmt.recoveryservicessiterecovery.models.CurrentScenarioDetails + :keyword failover_recovery_point_id: The recovery point ARM Id to which the Vm was failed over. + :paramtype failover_recovery_point_id: str + :keyword provider_specific_details: The Replication provider custom settings. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProviderSpecificSettings + :keyword recovery_container_id: The recovery container Id. + :paramtype recovery_container_id: str + :keyword event_correlation_id: The correlation Id for events associated with this protected + item. + :paramtype event_correlation_id: str + """ super().__init__(**kwargs) - self.instance_type: str = "ReplicationGroupDetails" + self.friendly_name = friendly_name + self.protected_item_type = protected_item_type + self.protectable_item_id = protectable_item_id + self.recovery_services_provider_id = recovery_services_provider_id + self.primary_fabric_friendly_name = primary_fabric_friendly_name + self.primary_fabric_provider = primary_fabric_provider + self.recovery_fabric_friendly_name = recovery_fabric_friendly_name + self.recovery_fabric_id = recovery_fabric_id + self.primary_protection_container_friendly_name = primary_protection_container_friendly_name + self.recovery_protection_container_friendly_name = recovery_protection_container_friendly_name + self.protection_state = protection_state + self.protection_state_description = protection_state_description + self.active_location = active_location + self.test_failover_state = test_failover_state + self.test_failover_state_description = test_failover_state_description + self.switch_provider_state = switch_provider_state + self.switch_provider_state_description = switch_provider_state_description + self.allowed_operations = allowed_operations + self.replication_health = replication_health + self.failover_health = failover_health + self.health_errors = health_errors + self.policy_id = policy_id + self.policy_friendly_name = policy_friendly_name + self.last_successful_failover_time = last_successful_failover_time + self.last_successful_test_failover_time = last_successful_test_failover_time + self.current_scenario = current_scenario + self.failover_recovery_point_id = failover_recovery_point_id + self.provider_specific_details = provider_specific_details + self.recovery_container_id = recovery_container_id + self.event_correlation_id = event_correlation_id -class ReplicationProtectedItem(Resource): - """Replication protected item. +class ReplicationProtectionCluster(_serialization.Model): + """Replication protection Cluster. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Resource Id. + :ivar id: The protection cluster Id. :vartype id: str - :ivar name: Resource Name. + :ivar name: The name of the protection cluster. :vartype name: str - :ivar type: Resource Type. + :ivar type: The Type of the object. :vartype type: str - :ivar location: Resource Location. - :vartype location: str :ivar properties: The custom data. :vartype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItemProperties + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionClusterProperties """ _validation = { @@ -23489,53 +25961,50 @@ class ReplicationProtectedItem(Resource): "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, - "location": {"key": "location", "type": "str"}, - "properties": {"key": "properties", "type": "ReplicationProtectedItemProperties"}, + "properties": {"key": "properties", "type": "ReplicationProtectionClusterProperties"}, } def __init__( - self, - *, - location: Optional[str] = None, - properties: Optional["_models.ReplicationProtectedItemProperties"] = None, - **kwargs: Any + self, *, properties: Optional["_models.ReplicationProtectionClusterProperties"] = None, **kwargs: Any ) -> None: """ - :keyword location: Resource Location. - :paramtype location: str :keyword properties: The custom data. :paramtype properties: - ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItemProperties + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionClusterProperties """ - super().__init__(location=location, **kwargs) + super().__init__(**kwargs) + self.id: Optional[str] = None + self.name: Optional[str] = None + self.type: Optional[str] = None self.properties = properties -class ReplicationProtectedItemCollection(_serialization.Model): +class ReplicationProtectionClusterCollection(_serialization.Model): """Replication protected item collection. - :ivar value: The Replication protected item details. - :vartype value: list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItem] + :ivar value: The Replication protection cluster details. + :vartype value: + list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] :ivar next_link: The value of next link. :vartype next_link: str """ _attribute_map = { - "value": {"key": "value", "type": "[ReplicationProtectedItem]"}, + "value": {"key": "value", "type": "[ReplicationProtectionCluster]"}, "next_link": {"key": "nextLink", "type": "str"}, } def __init__( self, *, - value: Optional[List["_models.ReplicationProtectedItem"]] = None, + value: Optional[List["_models.ReplicationProtectionCluster"]] = None, next_link: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword value: The Replication protected item details. + :keyword value: The Replication protection cluster details. :paramtype value: - list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItem] + list[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] :keyword next_link: The value of next link. :paramtype next_link: str """ @@ -23544,17 +26013,13 @@ def __init__( self.next_link = next_link -class ReplicationProtectedItemProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes - """Replication protected item custom data details. +class ReplicationProtectionClusterProperties(_serialization.Model): + """Replication protection cluster custom data details. - :ivar friendly_name: The name. - :vartype friendly_name: str - :ivar protected_item_type: The type of protected item type. - :vartype protected_item_type: str - :ivar protectable_item_id: The protected item ARM Id. - :vartype protectable_item_id: str - :ivar recovery_services_provider_id: The recovery provider ARM Id. - :vartype recovery_services_provider_id: str + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar protection_cluster_type: The type of protection cluster type. + :vartype protection_cluster_type: str :ivar primary_fabric_friendly_name: The friendly name of the primary fabric. :vartype primary_fabric_friendly_name: str :ivar primary_fabric_provider: The fabric provider of the primary fabric. @@ -23573,53 +26038,63 @@ class ReplicationProtectedItemProperties(_serialization.Model): # pylint: disab :vartype protection_state: str :ivar protection_state_description: The protection state description. :vartype protection_state_description: str - :ivar active_location: The Current active location of the PE. + :ivar active_location: The Current active location of the Protection cluster. :vartype active_location: str :ivar test_failover_state: The Test failover state. :vartype test_failover_state: str :ivar test_failover_state_description: The Test failover state description. :vartype test_failover_state_description: str - :ivar switch_provider_state: The switch provider state. - :vartype switch_provider_state: str - :ivar switch_provider_state_description: The switch provider state description. - :vartype switch_provider_state_description: str - :ivar allowed_operations: The allowed operations on the Replication protected item. + :ivar allowed_operations: The allowed operations on the Replication protection cluster. :vartype allowed_operations: list[str] :ivar replication_health: The consolidated protection health for the VM taking any issues with SRS as well as all the replication units associated with the VM's replication group into account. This is a string representation of the ProtectionHealth enumeration. :vartype replication_health: str - :ivar failover_health: The consolidated failover health for the VM. - :vartype failover_health: str :ivar health_errors: List of health errors. :vartype health_errors: list[~azure.mgmt.recoveryservicessiterecovery.models.HealthError] - :ivar policy_id: The ID of Policy governing this PE. - :vartype policy_id: str - :ivar policy_friendly_name: The name of Policy governing this PE. - :vartype policy_friendly_name: str - :ivar last_successful_failover_time: The Last successful failover time. + :ivar last_successful_failover_time: The last successful failover time. :vartype last_successful_failover_time: ~datetime.datetime - :ivar last_successful_test_failover_time: The Last successful test failover time. + :ivar last_successful_test_failover_time: The last successful test failover time. :vartype last_successful_test_failover_time: ~datetime.datetime + :ivar policy_friendly_name: The name of Policy governing this PE. + :vartype policy_friendly_name: str :ivar current_scenario: The current scenario. :vartype current_scenario: ~azure.mgmt.recoveryservicessiterecovery.models.CurrentScenarioDetails - :ivar failover_recovery_point_id: The recovery point ARM Id to which the Vm was failed over. - :vartype failover_recovery_point_id: str - :ivar provider_specific_details: The Replication provider custom settings. - :vartype provider_specific_details: - ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProviderSpecificSettings :ivar recovery_container_id: The recovery container Id. :vartype recovery_container_id: str - :ivar event_correlation_id: The correlation Id for events associated with this protected item. - :vartype event_correlation_id: str + :ivar agent_cluster_id: The Agent cluster Id. + :vartype agent_cluster_id: str + :ivar cluster_fqdn: The cluster FQDN. + :vartype cluster_fqdn: str + :ivar cluster_node_fqdns: The List of cluster Node FQDNs. + :vartype cluster_node_fqdns: list[str] + :ivar cluster_protected_item_ids: The List of Protected Item Id's. + :vartype cluster_protected_item_ids: list[str] + :ivar provisioning_state: The provisioning state of the cluster. + :vartype provisioning_state: str + :ivar are_all_cluster_nodes_registered: A value indicating whether all nodes of the cluster are + registered or not. + :vartype are_all_cluster_nodes_registered: bool + :ivar cluster_registered_nodes: The registered node details. + :vartype cluster_registered_nodes: + list[~azure.mgmt.recoveryservicessiterecovery.models.RegisteredClusterNodes] + :ivar provider_specific_details: The Replication cluster provider custom settings. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationClusterProviderSpecificSettings + :ivar shared_disk_properties: The shared disk properties. + :vartype shared_disk_properties: + ~azure.mgmt.recoveryservicessiterecovery.models.SharedDiskReplicationItemProperties + :ivar policy_id: The Policy Id. + :vartype policy_id: str """ + _validation = { + "provisioning_state": {"readonly": True}, + } + _attribute_map = { - "friendly_name": {"key": "friendlyName", "type": "str"}, - "protected_item_type": {"key": "protectedItemType", "type": "str"}, - "protectable_item_id": {"key": "protectableItemId", "type": "str"}, - "recovery_services_provider_id": {"key": "recoveryServicesProviderId", "type": "str"}, + "protection_cluster_type": {"key": "protectionClusterType", "type": "str"}, "primary_fabric_friendly_name": {"key": "primaryFabricFriendlyName", "type": "str"}, "primary_fabric_provider": {"key": "primaryFabricProvider", "type": "str"}, "recovery_fabric_friendly_name": {"key": "recoveryFabricFriendlyName", "type": "str"}, @@ -23634,30 +26109,33 @@ class ReplicationProtectedItemProperties(_serialization.Model): # pylint: disab "active_location": {"key": "activeLocation", "type": "str"}, "test_failover_state": {"key": "testFailoverState", "type": "str"}, "test_failover_state_description": {"key": "testFailoverStateDescription", "type": "str"}, - "switch_provider_state": {"key": "switchProviderState", "type": "str"}, - "switch_provider_state_description": {"key": "switchProviderStateDescription", "type": "str"}, "allowed_operations": {"key": "allowedOperations", "type": "[str]"}, "replication_health": {"key": "replicationHealth", "type": "str"}, - "failover_health": {"key": "failoverHealth", "type": "str"}, "health_errors": {"key": "healthErrors", "type": "[HealthError]"}, - "policy_id": {"key": "policyId", "type": "str"}, - "policy_friendly_name": {"key": "policyFriendlyName", "type": "str"}, "last_successful_failover_time": {"key": "lastSuccessfulFailoverTime", "type": "iso-8601"}, "last_successful_test_failover_time": {"key": "lastSuccessfulTestFailoverTime", "type": "iso-8601"}, + "policy_friendly_name": {"key": "policyFriendlyName", "type": "str"}, "current_scenario": {"key": "currentScenario", "type": "CurrentScenarioDetails"}, - "failover_recovery_point_id": {"key": "failoverRecoveryPointId", "type": "str"}, - "provider_specific_details": {"key": "providerSpecificDetails", "type": "ReplicationProviderSpecificSettings"}, "recovery_container_id": {"key": "recoveryContainerId", "type": "str"}, - "event_correlation_id": {"key": "eventCorrelationId", "type": "str"}, + "agent_cluster_id": {"key": "agentClusterId", "type": "str"}, + "cluster_fqdn": {"key": "clusterFqdn", "type": "str"}, + "cluster_node_fqdns": {"key": "clusterNodeFqdns", "type": "[str]"}, + "cluster_protected_item_ids": {"key": "clusterProtectedItemIds", "type": "[str]"}, + "provisioning_state": {"key": "provisioningState", "type": "str"}, + "are_all_cluster_nodes_registered": {"key": "areAllClusterNodesRegistered", "type": "bool"}, + "cluster_registered_nodes": {"key": "clusterRegisteredNodes", "type": "[RegisteredClusterNodes]"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "ReplicationClusterProviderSpecificSettings", + }, + "shared_disk_properties": {"key": "sharedDiskProperties", "type": "SharedDiskReplicationItemProperties"}, + "policy_id": {"key": "policyId", "type": "str"}, } def __init__( # pylint: disable=too-many-locals self, *, - friendly_name: Optional[str] = None, - protected_item_type: Optional[str] = None, - protectable_item_id: Optional[str] = None, - recovery_services_provider_id: Optional[str] = None, + protection_cluster_type: Optional[str] = None, primary_fabric_friendly_name: Optional[str] = None, primary_fabric_provider: Optional[str] = None, recovery_fabric_friendly_name: Optional[str] = None, @@ -23669,32 +26147,28 @@ def __init__( # pylint: disable=too-many-locals active_location: Optional[str] = None, test_failover_state: Optional[str] = None, test_failover_state_description: Optional[str] = None, - switch_provider_state: Optional[str] = None, - switch_provider_state_description: Optional[str] = None, allowed_operations: Optional[List[str]] = None, replication_health: Optional[str] = None, - failover_health: Optional[str] = None, health_errors: Optional[List["_models.HealthError"]] = None, - policy_id: Optional[str] = None, - policy_friendly_name: Optional[str] = None, last_successful_failover_time: Optional[datetime.datetime] = None, last_successful_test_failover_time: Optional[datetime.datetime] = None, + policy_friendly_name: Optional[str] = None, current_scenario: Optional["_models.CurrentScenarioDetails"] = None, - failover_recovery_point_id: Optional[str] = None, - provider_specific_details: Optional["_models.ReplicationProviderSpecificSettings"] = None, recovery_container_id: Optional[str] = None, - event_correlation_id: Optional[str] = None, + agent_cluster_id: Optional[str] = None, + cluster_fqdn: Optional[str] = None, + cluster_node_fqdns: Optional[List[str]] = None, + cluster_protected_item_ids: Optional[List[str]] = None, + are_all_cluster_nodes_registered: Optional[bool] = None, + cluster_registered_nodes: Optional[List["_models.RegisteredClusterNodes"]] = None, + provider_specific_details: Optional["_models.ReplicationClusterProviderSpecificSettings"] = None, + shared_disk_properties: Optional["_models.SharedDiskReplicationItemProperties"] = None, + policy_id: Optional[str] = None, **kwargs: Any ) -> None: """ - :keyword friendly_name: The name. - :paramtype friendly_name: str - :keyword protected_item_type: The type of protected item type. - :paramtype protected_item_type: str - :keyword protectable_item_id: The protected item ARM Id. - :paramtype protectable_item_id: str - :keyword recovery_services_provider_id: The recovery provider ARM Id. - :paramtype recovery_services_provider_id: str + :keyword protection_cluster_type: The type of protection cluster type. + :paramtype protection_cluster_type: str :keyword primary_fabric_friendly_name: The friendly name of the primary fabric. :paramtype primary_fabric_friendly_name: str :keyword primary_fabric_provider: The fabric provider of the primary fabric. @@ -23713,53 +26187,56 @@ def __init__( # pylint: disable=too-many-locals :paramtype protection_state: str :keyword protection_state_description: The protection state description. :paramtype protection_state_description: str - :keyword active_location: The Current active location of the PE. + :keyword active_location: The Current active location of the Protection cluster. :paramtype active_location: str :keyword test_failover_state: The Test failover state. :paramtype test_failover_state: str :keyword test_failover_state_description: The Test failover state description. :paramtype test_failover_state_description: str - :keyword switch_provider_state: The switch provider state. - :paramtype switch_provider_state: str - :keyword switch_provider_state_description: The switch provider state description. - :paramtype switch_provider_state_description: str - :keyword allowed_operations: The allowed operations on the Replication protected item. + :keyword allowed_operations: The allowed operations on the Replication protection cluster. :paramtype allowed_operations: list[str] :keyword replication_health: The consolidated protection health for the VM taking any issues with SRS as well as all the replication units associated with the VM's replication group into account. This is a string representation of the ProtectionHealth enumeration. :paramtype replication_health: str - :keyword failover_health: The consolidated failover health for the VM. - :paramtype failover_health: str :keyword health_errors: List of health errors. :paramtype health_errors: list[~azure.mgmt.recoveryservicessiterecovery.models.HealthError] - :keyword policy_id: The ID of Policy governing this PE. - :paramtype policy_id: str - :keyword policy_friendly_name: The name of Policy governing this PE. - :paramtype policy_friendly_name: str - :keyword last_successful_failover_time: The Last successful failover time. + :keyword last_successful_failover_time: The last successful failover time. :paramtype last_successful_failover_time: ~datetime.datetime - :keyword last_successful_test_failover_time: The Last successful test failover time. + :keyword last_successful_test_failover_time: The last successful test failover time. :paramtype last_successful_test_failover_time: ~datetime.datetime + :keyword policy_friendly_name: The name of Policy governing this PE. + :paramtype policy_friendly_name: str :keyword current_scenario: The current scenario. :paramtype current_scenario: ~azure.mgmt.recoveryservicessiterecovery.models.CurrentScenarioDetails - :keyword failover_recovery_point_id: The recovery point ARM Id to which the Vm was failed over. - :paramtype failover_recovery_point_id: str - :keyword provider_specific_details: The Replication provider custom settings. - :paramtype provider_specific_details: - ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProviderSpecificSettings :keyword recovery_container_id: The recovery container Id. :paramtype recovery_container_id: str - :keyword event_correlation_id: The correlation Id for events associated with this protected - item. - :paramtype event_correlation_id: str + :keyword agent_cluster_id: The Agent cluster Id. + :paramtype agent_cluster_id: str + :keyword cluster_fqdn: The cluster FQDN. + :paramtype cluster_fqdn: str + :keyword cluster_node_fqdns: The List of cluster Node FQDNs. + :paramtype cluster_node_fqdns: list[str] + :keyword cluster_protected_item_ids: The List of Protected Item Id's. + :paramtype cluster_protected_item_ids: list[str] + :keyword are_all_cluster_nodes_registered: A value indicating whether all nodes of the cluster + are registered or not. + :paramtype are_all_cluster_nodes_registered: bool + :keyword cluster_registered_nodes: The registered node details. + :paramtype cluster_registered_nodes: + list[~azure.mgmt.recoveryservicessiterecovery.models.RegisteredClusterNodes] + :keyword provider_specific_details: The Replication cluster provider custom settings. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationClusterProviderSpecificSettings + :keyword shared_disk_properties: The shared disk properties. + :paramtype shared_disk_properties: + ~azure.mgmt.recoveryservicessiterecovery.models.SharedDiskReplicationItemProperties + :keyword policy_id: The Policy Id. + :paramtype policy_id: str """ super().__init__(**kwargs) - self.friendly_name = friendly_name - self.protected_item_type = protected_item_type - self.protectable_item_id = protectable_item_id - self.recovery_services_provider_id = recovery_services_provider_id + self.protection_cluster_type = protection_cluster_type self.primary_fabric_friendly_name = primary_fabric_friendly_name self.primary_fabric_provider = primary_fabric_provider self.recovery_fabric_friendly_name = recovery_fabric_friendly_name @@ -23771,21 +26248,24 @@ def __init__( # pylint: disable=too-many-locals self.active_location = active_location self.test_failover_state = test_failover_state self.test_failover_state_description = test_failover_state_description - self.switch_provider_state = switch_provider_state - self.switch_provider_state_description = switch_provider_state_description self.allowed_operations = allowed_operations self.replication_health = replication_health - self.failover_health = failover_health self.health_errors = health_errors - self.policy_id = policy_id - self.policy_friendly_name = policy_friendly_name self.last_successful_failover_time = last_successful_failover_time self.last_successful_test_failover_time = last_successful_test_failover_time + self.policy_friendly_name = policy_friendly_name self.current_scenario = current_scenario - self.failover_recovery_point_id = failover_recovery_point_id - self.provider_specific_details = provider_specific_details self.recovery_container_id = recovery_container_id - self.event_correlation_id = event_correlation_id + self.agent_cluster_id = agent_cluster_id + self.cluster_fqdn = cluster_fqdn + self.cluster_node_fqdns = cluster_node_fqdns + self.cluster_protected_item_ids = cluster_protected_item_ids + self.provisioning_state: Optional[str] = None + self.are_all_cluster_nodes_registered = are_all_cluster_nodes_registered + self.cluster_registered_nodes = cluster_registered_nodes + self.provider_specific_details = provider_specific_details + self.shared_disk_properties = shared_disk_properties + self.policy_id = policy_id class ReplicationProtectionIntent(Resource): @@ -23927,14 +26407,14 @@ def __init__( """ super().__init__(**kwargs) self.friendly_name = friendly_name - self.job_id = None - self.job_state = None - self.is_active = None - self.creation_time_utc = None + self.job_id: Optional[str] = None + self.job_state: Optional[str] = None + self.is_active: Optional[bool] = None + self.creation_time_utc: Optional[str] = None self.provider_specific_details = provider_specific_details -class ReplicationProviderContainerUnmappingInput(_serialization.Model): +class ReplicationProviderContainerUnmappingInput(_serialization.Model): # pylint: disable=name-too-long """Provider specific input for unpairing operations. :ivar instance_type: The class type. @@ -23954,7 +26434,7 @@ def __init__(self, *, instance_type: Optional[str] = None, **kwargs: Any) -> Non self.instance_type = instance_type -class ReprotectAgentDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class ReprotectAgentDetails(_serialization.Model): """Reprotect agent details. Variables are only populated by the server, and will be ignored when sending a request. @@ -24023,19 +26503,19 @@ class ReprotectAgentDetails(_serialization.Model): # pylint: disable=too-many-i def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.bios_id = None - self.fabric_object_id = None - self.fqdn = None - self.version = None - self.last_heartbeat_utc = None - self.health = None - self.health_errors = None - self.protected_item_count = None - self.accessible_datastores = None - self.vcenter_id = None - self.last_discovery_in_utc = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.bios_id: Optional[str] = None + self.fabric_object_id: Optional[str] = None + self.fqdn: Optional[str] = None + self.version: Optional[str] = None + self.last_heartbeat_utc: Optional[datetime.datetime] = None + self.health: Optional[Union[str, "_models.ProtectionHealth"]] = None + self.health_errors: Optional[List["_models.HealthError"]] = None + self.protected_item_count: Optional[int] = None + self.accessible_datastores: Optional[List[str]] = None + self.vcenter_id: Optional[str] = None + self.last_discovery_in_utc: Optional[datetime.datetime] = None class ResolveHealthError(_serialization.Model): @@ -24185,7 +26665,7 @@ def __init__(self, *, comments: Optional[str] = None, **kwargs: Any) -> None: class ResumeReplicationInput(_serialization.Model): """Resume replication input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Resume replication input properties. Required. :vartype properties: @@ -24213,7 +26693,7 @@ def __init__(self, *, properties: "_models.ResumeReplicationInputProperties", ** class ResumeReplicationInputProperties(_serialization.Model): """Resume replication input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar provider_specific_details: The provider specific input for resume replication. Required. :vartype provider_specific_details: @@ -24250,7 +26730,7 @@ class ResumeReplicationProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtResumeReplicationInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -24275,7 +26755,7 @@ def __init__(self, **kwargs: Any) -> None: class ResyncInput(_serialization.Model): """Resync input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Resync input properties. Required. :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.ResyncInputProperties @@ -24301,7 +26781,7 @@ def __init__(self, *, properties: "_models.ResyncInputProperties", **kwargs: Any class ResyncInputProperties(_serialization.Model): """Resync input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar provider_specific_details: The provider specific details. Required. :vartype provider_specific_details: @@ -24332,7 +26812,7 @@ class ResyncProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtResyncInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -24543,7 +27023,7 @@ def __init__(self, *, account_id: Optional[str] = None, account_name: Optional[s class ScriptActionTaskDetails(TaskTypeDetails): """This class represents the script action task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -24596,6 +27076,79 @@ def __init__( self.is_primary_side_script = is_primary_side_script +class SecurityProfileProperties(_serialization.Model): + """Security profile input. + + :ivar target_vm_security_type: The target VM security type. Known values are: "None", + "TrustedLaunch", and "ConfidentialVM". + :vartype target_vm_security_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityType + :ivar target_vm_secure_boot: A value indicating whether secure boot to be enabled. Known values + are: "Disabled" and "Enabled". + :vartype target_vm_secure_boot: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + :ivar target_vm_tpm: A value indicating whether trusted platform module to be enabled. Known + values are: "Disabled" and "Enabled". + :vartype target_vm_tpm: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + :ivar target_vm_monitoring: A value indicating whether integrity monitoring to be enabled. + Known values are: "Disabled" and "Enabled". + :vartype target_vm_monitoring: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + :ivar target_vm_confidential_encryption: A value indicating whether confidential compute + encryption to be enabled. Known values are: "Disabled" and "Enabled". + :vartype target_vm_confidential_encryption: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + """ + + _attribute_map = { + "target_vm_security_type": {"key": "targetVmSecurityType", "type": "str"}, + "target_vm_secure_boot": {"key": "targetVmSecureBoot", "type": "str"}, + "target_vm_tpm": {"key": "targetVmTpm", "type": "str"}, + "target_vm_monitoring": {"key": "targetVmMonitoring", "type": "str"}, + "target_vm_confidential_encryption": {"key": "targetVmConfidentialEncryption", "type": "str"}, + } + + def __init__( + self, + *, + target_vm_security_type: Optional[Union[str, "_models.SecurityType"]] = None, + target_vm_secure_boot: Optional[Union[str, "_models.SecurityConfiguration"]] = None, + target_vm_tpm: Optional[Union[str, "_models.SecurityConfiguration"]] = None, + target_vm_monitoring: Optional[Union[str, "_models.SecurityConfiguration"]] = None, + target_vm_confidential_encryption: Optional[Union[str, "_models.SecurityConfiguration"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword target_vm_security_type: The target VM security type. Known values are: "None", + "TrustedLaunch", and "ConfidentialVM". + :paramtype target_vm_security_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityType + :keyword target_vm_secure_boot: A value indicating whether secure boot to be enabled. Known + values are: "Disabled" and "Enabled". + :paramtype target_vm_secure_boot: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + :keyword target_vm_tpm: A value indicating whether trusted platform module to be enabled. Known + values are: "Disabled" and "Enabled". + :paramtype target_vm_tpm: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + :keyword target_vm_monitoring: A value indicating whether integrity monitoring to be enabled. + Known values are: "Disabled" and "Enabled". + :paramtype target_vm_monitoring: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + :keyword target_vm_confidential_encryption: A value indicating whether confidential compute + encryption to be enabled. Known values are: "Disabled" and "Enabled". + :paramtype target_vm_confidential_encryption: str or + ~azure.mgmt.recoveryservicessiterecovery.models.SecurityConfiguration + """ + super().__init__(**kwargs) + self.target_vm_security_type = target_vm_security_type + self.target_vm_secure_boot = target_vm_secure_boot + self.target_vm_tpm = target_vm_tpm + self.target_vm_monitoring = target_vm_monitoring + self.target_vm_confidential_encryption = target_vm_confidential_encryption + + class ServiceError(_serialization.Model): """ASR error model. @@ -24649,6 +27202,91 @@ def __init__( self.activity_id = activity_id +class SharedDiskReplicationItemProperties(_serialization.Model): + """Shared Disk Replication item custom data details. + + :ivar protection_state: The protection state of shared disk. + :vartype protection_state: str + :ivar test_failover_state: The tfo state of shared disk. + :vartype test_failover_state: str + :ivar active_location: The Current active location of the PE. + :vartype active_location: str + :ivar allowed_operations: The allowed operations on the Replication protected item. + :vartype allowed_operations: list[str] + :ivar replication_health: The consolidated protection health for the VM taking any issues with + SRS as well as all the replication units associated with the VM's replication group into + account. This is a string representation of the ProtectionHealth enumeration. + :vartype replication_health: str + :ivar health_errors: List of health errors. + :vartype health_errors: list[~azure.mgmt.recoveryservicessiterecovery.models.HealthError] + :ivar current_scenario: The current scenario. + :vartype current_scenario: + ~azure.mgmt.recoveryservicessiterecovery.models.CurrentScenarioDetails + :ivar shared_disk_provider_specific_details: The Replication provider custom settings. + :vartype shared_disk_provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.SharedDiskReplicationProviderSpecificSettings + """ + + _attribute_map = { + "protection_state": {"key": "protectionState", "type": "str"}, + "test_failover_state": {"key": "testFailoverState", "type": "str"}, + "active_location": {"key": "activeLocation", "type": "str"}, + "allowed_operations": {"key": "allowedOperations", "type": "[str]"}, + "replication_health": {"key": "replicationHealth", "type": "str"}, + "health_errors": {"key": "healthErrors", "type": "[HealthError]"}, + "current_scenario": {"key": "currentScenario", "type": "CurrentScenarioDetails"}, + "shared_disk_provider_specific_details": { + "key": "sharedDiskProviderSpecificDetails", + "type": "SharedDiskReplicationProviderSpecificSettings", + }, + } + + def __init__( + self, + *, + protection_state: Optional[str] = None, + test_failover_state: Optional[str] = None, + active_location: Optional[str] = None, + allowed_operations: Optional[List[str]] = None, + replication_health: Optional[str] = None, + health_errors: Optional[List["_models.HealthError"]] = None, + current_scenario: Optional["_models.CurrentScenarioDetails"] = None, + shared_disk_provider_specific_details: Optional["_models.SharedDiskReplicationProviderSpecificSettings"] = None, + **kwargs: Any + ) -> None: + """ + :keyword protection_state: The protection state of shared disk. + :paramtype protection_state: str + :keyword test_failover_state: The tfo state of shared disk. + :paramtype test_failover_state: str + :keyword active_location: The Current active location of the PE. + :paramtype active_location: str + :keyword allowed_operations: The allowed operations on the Replication protected item. + :paramtype allowed_operations: list[str] + :keyword replication_health: The consolidated protection health for the VM taking any issues + with SRS as well as all the replication units associated with the VM's replication group into + account. This is a string representation of the ProtectionHealth enumeration. + :paramtype replication_health: str + :keyword health_errors: List of health errors. + :paramtype health_errors: list[~azure.mgmt.recoveryservicessiterecovery.models.HealthError] + :keyword current_scenario: The current scenario. + :paramtype current_scenario: + ~azure.mgmt.recoveryservicessiterecovery.models.CurrentScenarioDetails + :keyword shared_disk_provider_specific_details: The Replication provider custom settings. + :paramtype shared_disk_provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.SharedDiskReplicationProviderSpecificSettings + """ + super().__init__(**kwargs) + self.protection_state = protection_state + self.test_failover_state = test_failover_state + self.active_location = active_location + self.allowed_operations = allowed_operations + self.replication_health = replication_health + self.health_errors = health_errors + self.current_scenario = current_scenario + self.shared_disk_provider_specific_details = shared_disk_provider_specific_details + + class StorageClassification(Resource): """Storage object definition. @@ -25080,6 +27718,67 @@ def __init__( self.supported_os = supported_os +class SwitchClusterProtectionInput(_serialization.Model): + """Switch cluster protection input. + + :ivar properties: Switch cluster protection properties. + :vartype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionInputProperties + """ + + _attribute_map = { + "properties": {"key": "properties", "type": "SwitchClusterProtectionInputProperties"}, + } + + def __init__( + self, *, properties: Optional["_models.SwitchClusterProtectionInputProperties"] = None, **kwargs: Any + ) -> None: + """ + :keyword properties: Switch cluster protection properties. + :paramtype properties: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionInputProperties + """ + super().__init__(**kwargs) + self.properties = properties + + +class SwitchClusterProtectionInputProperties(_serialization.Model): + """Switch cluster protection input properties. + + :ivar replication_protection_cluster_name: The unique replication protection cluster name. + :vartype replication_protection_cluster_name: str + :ivar provider_specific_details: Provider specific switch protection input. + :vartype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionProviderSpecificInput + """ + + _attribute_map = { + "replication_protection_cluster_name": {"key": "replicationProtectionClusterName", "type": "str"}, + "provider_specific_details": { + "key": "providerSpecificDetails", + "type": "SwitchClusterProtectionProviderSpecificInput", + }, + } + + def __init__( + self, + *, + replication_protection_cluster_name: Optional[str] = None, + provider_specific_details: Optional["_models.SwitchClusterProtectionProviderSpecificInput"] = None, + **kwargs: Any + ) -> None: + """ + :keyword replication_protection_cluster_name: The unique replication protection cluster name. + :paramtype replication_protection_cluster_name: str + :keyword provider_specific_details: Provider specific switch protection input. + :paramtype provider_specific_details: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionProviderSpecificInput + """ + super().__init__(**kwargs) + self.replication_protection_cluster_name = replication_protection_cluster_name + self.provider_specific_details = provider_specific_details + + class SwitchProtectionInput(_serialization.Model): """Switch protection input. @@ -25144,7 +27843,7 @@ def __init__( class SwitchProtectionJobDetails(JobDetails): """This class represents details for switch protection job. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible values). Required. @@ -25407,7 +28106,7 @@ def __init__( self.name = name self.friendly_name = friendly_name self.cpu_cores_count = cpu_cores_count - self.v_cpus_available = None + self.v_cpus_available: Optional[int] = None self.memory_in_gb = memory_in_gb self.max_data_disk_count = max_data_disk_count self.max_nics_count = max_nics_count @@ -25419,7 +28118,7 @@ def __init__( class TestFailoverCleanupInput(_serialization.Model): """Input definition for test failover cleanup. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Test failover cleanup input properties. Required. :vartype properties: @@ -25471,7 +28170,7 @@ def __init__(self, *, comments: Optional[str] = None, **kwargs: Any) -> None: class TestFailoverInput(_serialization.Model): """Input definition for test failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Test failover input properties. Required. :vartype properties: @@ -25547,7 +28246,7 @@ def __init__( class TestFailoverJobDetails(JobDetails): """This class represents the details for a test failover job. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the type of job details (see JobDetailsTypes enum for possible values). Required. @@ -25628,7 +28327,7 @@ def __init__( class TestMigrateCleanupInput(_serialization.Model): """Input for test migrate cleanup. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Test migrate cleanup input properties. Required. :vartype properties: @@ -25680,7 +28379,7 @@ def __init__(self, *, comments: Optional[str] = None, **kwargs: Any) -> None: class TestMigrateInput(_serialization.Model): """Input for test migrate. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Test migrate input properties. Required. :vartype properties: ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateInputProperties @@ -25707,7 +28406,7 @@ def __init__(self, *, properties: "_models.TestMigrateInputProperties", **kwargs class TestMigrateInputProperties(_serialization.Model): """Test migrate input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar provider_specific_details: The provider specific details. Required. :vartype provider_specific_details: @@ -25738,7 +28437,7 @@ class TestMigrateProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtTestMigrateInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -25763,7 +28462,7 @@ def __init__(self, **kwargs: Any) -> None: class UnplannedFailoverInput(_serialization.Model): """Input definition for unplanned failover. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Unplanned failover input properties. Required. :vartype properties: @@ -25832,10 +28531,10 @@ def __init__( self.provider_specific_details = provider_specific_details -class UpdateApplianceForReplicationProtectedItemInput(_serialization.Model): +class UpdateApplianceForReplicationProtectedItemInput(_serialization.Model): # pylint: disable=name-too-long """Update appliance for replication protected item input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Update appliance replication protected item properties. Required. :vartype properties: @@ -25862,10 +28561,10 @@ def __init__( self.properties = properties -class UpdateApplianceForReplicationProtectedItemInputProperties(_serialization.Model): +class UpdateApplianceForReplicationProtectedItemInputProperties(_serialization.Model): # pylint: disable=name-too-long """Update appliance for protected item input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar target_appliance_id: The target appliance Id. Required. :vartype target_appliance_id: str @@ -25911,12 +28610,18 @@ def __init__( class UpdateDiskInput(_serialization.Model): """Disk input for update. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar disk_id: The disk Id. Required. :vartype disk_id: str :ivar target_disk_name: The target disk name. :vartype target_disk_name: str + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -25926,18 +28631,39 @@ class UpdateDiskInput(_serialization.Model): _attribute_map = { "disk_id": {"key": "diskId", "type": "str"}, "target_disk_name": {"key": "targetDiskName", "type": "str"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } - def __init__(self, *, disk_id: str, target_disk_name: Optional[str] = None, **kwargs: Any) -> None: + def __init__( + self, + *, + disk_id: str, + target_disk_name: Optional[str] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, + **kwargs: Any + ) -> None: """ :keyword disk_id: The disk Id. Required. :paramtype disk_id: str :keyword target_disk_name: The target disk name. :paramtype target_disk_name: str + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.disk_id = disk_id self.target_disk_name = target_disk_name + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb class UpdateMigrationItemInput(_serialization.Model): @@ -25967,7 +28693,7 @@ def __init__( class UpdateMigrationItemInputProperties(_serialization.Model): """Update migration item input properties. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar provider_specific_details: The provider specific input to update migration item. Required. @@ -26005,7 +28731,7 @@ class UpdateMigrationItemProviderSpecificInput(_serialization.Model): You probably want to use the sub-classes and not this class directly. Known sub-classes are: VMwareCbtUpdateMigrationItemInput - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -26206,7 +28932,7 @@ def __init__( self.properties = properties -class UpdateProtectionContainerMappingInputProperties(_serialization.Model): +class UpdateProtectionContainerMappingInputProperties(_serialization.Model): # pylint: disable=name-too-long """Container pairing update input. :ivar provider_specific_input: Provider specific input for updating protection container @@ -26306,7 +29032,7 @@ def __init__( self.properties = properties -class UpdateReplicationProtectedItemInputProperties(_serialization.Model): +class UpdateReplicationProtectedItemInputProperties(_serialization.Model): # pylint: disable=name-too-long """Update protected item input properties. :ivar recovery_azure_vm_name: Target Azure VM name given by the user. @@ -26320,7 +29046,7 @@ class UpdateReplicationProtectedItemInputProperties(_serialization.Model): :ivar selected_source_nic_id: The selected source nic Id which will be used as the primary nic during failover. :vartype selected_source_nic_id: str - :ivar enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :ivar enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :vartype enable_rdp_on_target_option: str :ivar vm_nics: The list of VM nic details. @@ -26379,7 +29105,7 @@ def __init__( :keyword selected_source_nic_id: The selected source nic Id which will be used as the primary nic during failover. :paramtype selected_source_nic_id: str - :keyword enable_rdp_on_target_option: The selected option to enable RDP\SSH on target vm after + :keyword enable_rdp_on_target_option: The selected option to enable RDP\\SSH on target vm after failover. String value of SrsDataContract.EnableRDPOnTargetOption enum. :paramtype enable_rdp_on_target_option: str :keyword vm_nics: The list of VM nic details. @@ -26482,6 +29208,41 @@ def __init__( self.run_as_account_id = run_as_account_id +class UserCreatedResourceTag(_serialization.Model): + """Resource tag input. + + :ivar tag_name: The tag name. Please read for more information: + https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources#limitations. + :vartype tag_name: str + :ivar tag_value: The tag value. Please read her for more information: + https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources#limitations. + :vartype tag_value: str + """ + + _validation = { + "tag_name": {"max_length": 512}, + "tag_value": {"max_length": 256}, + } + + _attribute_map = { + "tag_name": {"key": "tagName", "type": "str"}, + "tag_value": {"key": "tagValue", "type": "str"}, + } + + def __init__(self, *, tag_name: Optional[str] = None, tag_value: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword tag_name: The tag name. Please read for more information: + https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources#limitations. + :paramtype tag_name: str + :keyword tag_value: The tag value. Please read her for more information: + https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources#limitations. + :paramtype tag_value: str + """ + super().__init__(**kwargs) + self.tag_name = tag_name + self.tag_value = tag_value + + class VaultHealthDetails(Resource): """Vault health details definition. @@ -26662,7 +29423,7 @@ def __init__( class VaultSettingCreationInput(_serialization.Model): """Input to create vault setting. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar properties: Vault setting creation input properties. Required. :vartype properties: @@ -26823,7 +29584,7 @@ def __init__( self.next_link = next_link -class VCenterProperties(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VCenterProperties(_serialization.Model): """vCenter properties. :ivar friendly_name: Friendly name of the vCenter. @@ -26962,7 +29723,7 @@ def __init__( class VirtualMachineTaskDetails(JobTaskDetails): """This class represents the virtual machine task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -27010,7 +29771,7 @@ def __init__( class VmmDetails(FabricSpecificDetails): """VMM fabric specific details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -27033,7 +29794,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmToAzureCreateNetworkMappingInput(FabricSpecificCreateNetworkMappingInput): """Create network mappings input properties/behavior specific to Vmm to Azure Network mapping. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The instance type. Required. :vartype instance_type: str @@ -27056,7 +29817,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmToAzureNetworkMappingSettings(NetworkMappingFabricSpecificSettings): """E2A Network Mapping fabric specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -27079,7 +29840,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmToAzureUpdateNetworkMappingInput(FabricSpecificUpdateNetworkMappingInput): """Update network mappings input properties/behavior specific to vmm to azure. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The instance type. Required. :vartype instance_type: str @@ -27102,7 +29863,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmToVmmCreateNetworkMappingInput(FabricSpecificCreateNetworkMappingInput): """Create network mappings input properties/behavior specific to vmm to vmm Network mapping. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The instance type. Required. :vartype instance_type: str @@ -27125,7 +29886,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmToVmmNetworkMappingSettings(NetworkMappingFabricSpecificSettings): """E2E Network Mapping fabric specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the Instance type. Required. :vartype instance_type: str @@ -27148,7 +29909,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmToVmmUpdateNetworkMappingInput(FabricSpecificUpdateNetworkMappingInput): """Update network mappings input properties/behavior specific to vmm to vmm. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The instance type. Required. :vartype instance_type: str @@ -27171,7 +29932,7 @@ def __init__(self, **kwargs: Any) -> None: class VmmVirtualMachineDetails(HyperVVirtualMachineDetails): """VMM fabric provider specific VM settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -27271,7 +30032,7 @@ def __init__( self.instance_type: str = "VmmVirtualMachine" -class VMNicDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VMNicDetails(_serialization.Model): """Hyper V VM network details. :ivar nic_id: The nic Id. @@ -27435,7 +30196,7 @@ def __init__( self.target_nic_name = target_nic_name -class VMNicInputDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VMNicInputDetails(_serialization.Model): """Hyper V VM network input details. :ivar nic_id: The nic Id. @@ -27567,7 +30328,7 @@ def __init__( class VmNicUpdatesTaskDetails(TaskTypeDetails): """This class represents the vm NicUpdates task details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The type of task details. Required. :vartype instance_type: str @@ -27611,7 +30372,7 @@ def __init__( class VMwareCbtContainerCreationInput(ReplicationProviderSpecificContainerCreationInput): """VMwareCbt container creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -27634,7 +30395,7 @@ def __init__(self, **kwargs: Any) -> None: class VMwareCbtContainerMappingInput(ReplicationProviderSpecificContainerMappingInput): """VMwareCbt container mapping input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -27708,12 +30469,12 @@ def __init__( class VMwareCbtDiskInput(_serialization.Model): """VMwareCbt disk input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar disk_id: The disk Id. Required. :vartype disk_id: str - :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar is_os_disk: A value indicating whether the disk is the OS disk. Required. :vartype is_os_disk: str @@ -27724,6 +30485,14 @@ class VMwareCbtDiskInput(_serialization.Model): :vartype log_storage_account_sas_secret_name: str :ivar disk_encryption_set_id: The DiskEncryptionSet ARM Id. :vartype disk_encryption_set_id: str + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -27740,6 +30509,10 @@ class VMwareCbtDiskInput(_serialization.Model): "log_storage_account_id": {"key": "logStorageAccountId", "type": "str"}, "log_storage_account_sas_secret_name": {"key": "logStorageAccountSasSecretName", "type": "str"}, "disk_encryption_set_id": {"key": "diskEncryptionSetId", "type": "str"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -27751,13 +30524,17 @@ def __init__( log_storage_account_sas_secret_name: str, disk_type: Optional[Union[str, "_models.DiskAccountType"]] = None, disk_encryption_set_id: Optional[str] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ :keyword disk_id: The disk Id. Required. :paramtype disk_id: str - :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword is_os_disk: A value indicating whether the disk is the OS disk. Required. :paramtype is_os_disk: str @@ -27768,6 +30545,14 @@ def __init__( :paramtype log_storage_account_sas_secret_name: str :keyword disk_encryption_set_id: The DiskEncryptionSet ARM Id. :paramtype disk_encryption_set_id: str + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.disk_id = disk_id @@ -27776,14 +30561,16 @@ def __init__( self.log_storage_account_id = log_storage_account_id self.log_storage_account_sas_secret_name = log_storage_account_sas_secret_name self.disk_encryption_set_id = disk_encryption_set_id + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class VMwareCbtEnableMigrationInput( - EnableMigrationProviderSpecificInput -): # pylint: disable=too-many-instance-attributes +class VMwareCbtEnableMigrationInput(EnableMigrationProviderSpecificInput): """VMwareCbt specific enable migration input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -27799,6 +30586,10 @@ class VMwareCbtEnableMigrationInput( "NoLicenseType", "PAYG", and "AHUB". :vartype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :ivar perform_sql_bulk_registration: A value indicating whether bulk SQL RP registration to be done. :vartype perform_sql_bulk_registration: str @@ -27844,6 +30635,8 @@ class VMwareCbtEnableMigrationInput( :vartype target_disk_tags: dict[str, str] :ivar target_nic_tags: The tags for the target NICs. :vartype target_nic_tags: dict[str, str] + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str """ _validation = { @@ -27862,6 +30655,7 @@ class VMwareCbtEnableMigrationInput( "disks_to_include": {"key": "disksToInclude", "type": "[VMwareCbtDiskInput]"}, "license_type": {"key": "licenseType", "type": "str"}, "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, "perform_sql_bulk_registration": {"key": "performSqlBulkRegistration", "type": "str"}, "data_mover_run_as_account_id": {"key": "dataMoverRunAsAccountId", "type": "str"}, "snapshot_run_as_account_id": {"key": "snapshotRunAsAccountId", "type": "str"}, @@ -27883,6 +30677,7 @@ class VMwareCbtEnableMigrationInput( "seed_disk_tags": {"key": "seedDiskTags", "type": "{str}"}, "target_disk_tags": {"key": "targetDiskTags", "type": "{str}"}, "target_nic_tags": {"key": "targetNicTags", "type": "{str}"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, } def __init__( # pylint: disable=too-many-locals @@ -27896,6 +30691,7 @@ def __init__( # pylint: disable=too-many-locals target_network_id: str, license_type: Optional[Union[str, "_models.LicenseType"]] = None, sql_server_license_type: Optional[Union[str, "_models.SqlServerLicenseType"]] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, perform_sql_bulk_registration: Optional[str] = None, target_vm_name: Optional[str] = None, target_vm_size: Optional[str] = None, @@ -27913,6 +30709,7 @@ def __init__( # pylint: disable=too-many-locals seed_disk_tags: Optional[Dict[str, str]] = None, target_disk_tags: Optional[Dict[str, str]] = None, target_nic_tags: Optional[Dict[str, str]] = None, + user_selected_os_name: Optional[str] = None, **kwargs: Any ) -> None: """ @@ -27928,6 +30725,10 @@ def __init__( # pylint: disable=too-many-locals "NotSpecified", "NoLicenseType", "PAYG", and "AHUB". :paramtype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :keyword perform_sql_bulk_registration: A value indicating whether bulk SQL RP registration to be done. :paramtype perform_sql_bulk_registration: str @@ -27973,6 +30774,8 @@ def __init__( # pylint: disable=too-many-locals :paramtype target_disk_tags: dict[str, str] :keyword target_nic_tags: The tags for the target NICs. :paramtype target_nic_tags: dict[str, str] + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str """ super().__init__(**kwargs) self.instance_type: str = "VMwareCbt" @@ -27980,6 +30783,7 @@ def __init__( # pylint: disable=too-many-locals self.disks_to_include = disks_to_include self.license_type = license_type self.sql_server_license_type = sql_server_license_type + self.linux_license_type = linux_license_type self.perform_sql_bulk_registration = perform_sql_bulk_registration self.data_mover_run_as_account_id = data_mover_run_as_account_id self.snapshot_run_as_account_id = snapshot_run_as_account_id @@ -28001,6 +30805,7 @@ def __init__( # pylint: disable=too-many-locals self.seed_disk_tags = seed_disk_tags self.target_disk_tags = target_disk_tags self.target_nic_tags = target_nic_tags + self.user_selected_os_name = user_selected_os_name class VMwareCbtEventDetails(EventProviderSpecificDetails): @@ -28008,7 +30813,7 @@ class VMwareCbtEventDetails(EventProviderSpecificDetails): Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -28030,13 +30835,13 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "VMwareCbt" - self.migration_item_name = None + self.migration_item_name: Optional[str] = None class VMwareCbtMigrateInput(MigrateProviderSpecificInput): """VMwareCbt specific migrate input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -28044,6 +30849,9 @@ class VMwareCbtMigrateInput(MigrateProviderSpecificInput): :vartype perform_shutdown: str :ivar os_upgrade_version: A value indicating the inplace OS Upgrade version. :vartype os_upgrade_version: str + :ivar post_migration_steps: The managed run command script input. + :vartype post_migration_steps: + list[~azure.mgmt.recoveryservicessiterecovery.models.ManagedRunCommandScriptInput] """ _validation = { @@ -28055,27 +30863,39 @@ class VMwareCbtMigrateInput(MigrateProviderSpecificInput): "instance_type": {"key": "instanceType", "type": "str"}, "perform_shutdown": {"key": "performShutdown", "type": "str"}, "os_upgrade_version": {"key": "osUpgradeVersion", "type": "str"}, + "post_migration_steps": {"key": "postMigrationSteps", "type": "[ManagedRunCommandScriptInput]"}, } - def __init__(self, *, perform_shutdown: str, os_upgrade_version: Optional[str] = None, **kwargs: Any) -> None: + def __init__( + self, + *, + perform_shutdown: str, + os_upgrade_version: Optional[str] = None, + post_migration_steps: Optional[List["_models.ManagedRunCommandScriptInput"]] = None, + **kwargs: Any + ) -> None: """ :keyword perform_shutdown: A value indicating whether VM is to be shutdown. Required. :paramtype perform_shutdown: str :keyword os_upgrade_version: A value indicating the inplace OS Upgrade version. :paramtype os_upgrade_version: str + :keyword post_migration_steps: The managed run command script input. + :paramtype post_migration_steps: + list[~azure.mgmt.recoveryservicessiterecovery.models.ManagedRunCommandScriptInput] """ super().__init__(**kwargs) self.instance_type: str = "VMwareCbt" self.perform_shutdown = perform_shutdown self.os_upgrade_version = os_upgrade_version + self.post_migration_steps = post_migration_steps -class VMwareCbtMigrationDetails(MigrationProviderSpecificSettings): # pylint: disable=too-many-instance-attributes +class VMwareCbtMigrationDetails(MigrationProviderSpecificSettings): """VMwareCbt provider specific settings. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the instance type. Required. :vartype instance_type: str @@ -28093,6 +30913,10 @@ class VMwareCbtMigrationDetails(MigrationProviderSpecificSettings): # pylint: d :vartype license_type: str :ivar sql_server_license_type: The SQL Server license type. :vartype sql_server_license_type: str + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :ivar data_mover_run_as_account_id: The data mover run as account Id. :vartype data_mover_run_as_account_id: str :ivar snapshot_run_as_account_id: The snapshot run as account Id. @@ -28225,6 +31049,7 @@ class VMwareCbtMigrationDetails(MigrationProviderSpecificSettings): # pylint: d "target_generation": {"key": "targetGeneration", "type": "str"}, "license_type": {"key": "licenseType", "type": "str"}, "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, "data_mover_run_as_account_id": {"key": "dataMoverRunAsAccountId", "type": "str"}, "snapshot_run_as_account_id": {"key": "snapshotRunAsAccountId", "type": "str"}, "storage_account_id": {"key": "storageAccountId", "type": "str"}, @@ -28273,6 +31098,7 @@ def __init__( # pylint: disable=too-many-locals *, license_type: Optional[str] = None, sql_server_license_type: Optional[str] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, target_vm_name: Optional[str] = None, target_vm_size: Optional[str] = None, target_resource_group_id: Optional[str] = None, @@ -28299,6 +31125,10 @@ def __init__( # pylint: disable=too-many-locals :paramtype license_type: str :keyword sql_server_license_type: The SQL Server license type. :paramtype sql_server_license_type: str + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType :keyword target_vm_name: Target VM name. :paramtype target_vm_name: str :keyword target_vm_size: The target VM size. @@ -28343,19 +31173,20 @@ def __init__( # pylint: disable=too-many-locals """ super().__init__(**kwargs) self.instance_type: str = "VMwareCbt" - self.vmware_machine_id = None - self.os_type = None - self.os_name = None - self.firmware_type = None - self.target_generation = None + self.vmware_machine_id: Optional[str] = None + self.os_type: Optional[str] = None + self.os_name: Optional[str] = None + self.firmware_type: Optional[str] = None + self.target_generation: Optional[str] = None self.license_type = license_type self.sql_server_license_type = sql_server_license_type - self.data_mover_run_as_account_id = None - self.snapshot_run_as_account_id = None - self.storage_account_id = None + self.linux_license_type = linux_license_type + self.data_mover_run_as_account_id: Optional[str] = None + self.snapshot_run_as_account_id: Optional[str] = None + self.storage_account_id: Optional[str] = None self.target_vm_name = target_vm_name self.target_vm_size = target_vm_size - self.target_location = None + self.target_location: Optional[str] = None self.target_resource_group_id = target_resource_group_id self.target_availability_set_id = target_availability_set_id self.target_availability_zone = target_availability_zone @@ -28369,31 +31200,31 @@ def __init__( # pylint: disable=too-many-locals self.test_network_id = test_network_id self.vm_nics = vm_nics self.target_nic_tags = target_nic_tags - self.migration_recovery_point_id = None - self.last_recovery_point_received = None - self.last_recovery_point_id = None - self.initial_seeding_progress_percentage = None - self.migration_progress_percentage = None - self.resync_progress_percentage = None - self.resume_progress_percentage = None - self.delta_sync_progress_percentage = None - self.is_check_sum_resync_cycle = None - self.initial_seeding_retry_count = None - self.resync_retry_count = None - self.resume_retry_count = None - self.delta_sync_retry_count = None - self.resync_required = None - self.resync_state = None + self.migration_recovery_point_id: Optional[str] = None + self.last_recovery_point_received: Optional[datetime.datetime] = None + self.last_recovery_point_id: Optional[str] = None + self.initial_seeding_progress_percentage: Optional[int] = None + self.migration_progress_percentage: Optional[int] = None + self.resync_progress_percentage: Optional[int] = None + self.resume_progress_percentage: Optional[int] = None + self.delta_sync_progress_percentage: Optional[int] = None + self.is_check_sum_resync_cycle: Optional[str] = None + self.initial_seeding_retry_count: Optional[int] = None + self.resync_retry_count: Optional[int] = None + self.resume_retry_count: Optional[int] = None + self.delta_sync_retry_count: Optional[int] = None + self.resync_required: Optional[str] = None + self.resync_state: Optional[Union[str, "_models.ResyncState"]] = None self.perform_auto_resync = perform_auto_resync self.seed_disk_tags = seed_disk_tags self.target_disk_tags = target_disk_tags self.supported_os_versions = supported_os_versions - self.appliance_monitoring_details = None - self.gateway_operation_details = None - self.operation_name = None + self.appliance_monitoring_details: Optional["_models.ApplianceMonitoringDetails"] = None + self.gateway_operation_details: Optional["_models.GatewayOperationDetails"] = None + self.operation_name: Optional[str] = None -class VMwareCbtNicDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VMwareCbtNicDetails(_serialization.Model): """VMwareCbt NIC details. Variables are only populated by the server, and will be ignored when sending a request. @@ -28500,11 +31331,11 @@ def __init__( :paramtype is_selected_for_migration: str """ super().__init__(**kwargs) - self.nic_id = None + self.nic_id: Optional[str] = None self.is_primary_nic = is_primary_nic - self.source_ip_address = None - self.source_ip_address_type = None - self.source_network_id = None + self.source_ip_address: Optional[str] = None + self.source_ip_address_type: Optional[Union[str, "_models.EthernetAddressType"]] = None + self.source_network_id: Optional[str] = None self.target_ip_address = target_ip_address self.target_ip_address_type = target_ip_address_type self.target_subnet_name = target_subnet_name @@ -28519,7 +31350,7 @@ def __init__( class VMwareCbtNicInput(_serialization.Model): """VMwareCbt NIC input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar nic_id: The NIC Id. Required. :vartype nic_id: str @@ -28601,7 +31432,7 @@ def __init__( class VMwareCbtPolicyCreationInput(PolicyProviderSpecificInput): """VMware Cbt policy creation input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -28655,7 +31486,7 @@ def __init__( class VmwareCbtPolicyDetails(PolicyProviderSpecificDetails): """VMware Cbt specific policy details. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -28705,7 +31536,7 @@ def __init__( self.crash_consistent_frequency_in_minutes = crash_consistent_frequency_in_minutes -class VMwareCbtProtectedDiskDetails(_serialization.Model): # pylint: disable=too-many-instance-attributes +class VMwareCbtProtectedDiskDetails(_serialization.Model): """VMwareCbt protected disk details. Variables are only populated by the server, and will be ignored when sending a request. @@ -28714,8 +31545,8 @@ class VMwareCbtProtectedDiskDetails(_serialization.Model): # pylint: disable=to :vartype disk_id: str :ivar disk_name: The disk name. :vartype disk_name: str - :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :ivar disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :vartype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :ivar disk_path: The disk path. :vartype disk_path: str @@ -28743,6 +31574,14 @@ class VMwareCbtProtectedDiskDetails(_serialization.Model): # pylint: disable=to :ivar gateway_operation_details: A value indicating the gateway operation details. :vartype gateway_operation_details: ~azure.mgmt.recoveryservicessiterecovery.models.GatewayOperationDetails + :ivar sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :vartype sector_size_in_bytes: int + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -28777,6 +31616,10 @@ class VMwareCbtProtectedDiskDetails(_serialization.Model): # pylint: disable=to "target_blob_uri": {"key": "targetBlobUri", "type": "str"}, "target_disk_name": {"key": "targetDiskName", "type": "str"}, "gateway_operation_details": {"key": "gatewayOperationDetails", "type": "GatewayOperationDetails"}, + "sector_size_in_bytes": {"key": "sectorSizeInBytes", "type": "int"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( @@ -28784,39 +31627,57 @@ def __init__( *, disk_type: Optional[Union[str, "_models.DiskAccountType"]] = None, target_disk_name: Optional[str] = None, + sector_size_in_bytes: Optional[int] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, **kwargs: Any ) -> None: """ - :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", and - "StandardSSD_LRS". + :keyword disk_type: The disk type. Known values are: "Standard_LRS", "Premium_LRS", + "StandardSSD_LRS", "PremiumV2_LRS", "UltraSSD_LRS", "StandardSSD_ZRS", and "Premium_ZRS". :paramtype disk_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.DiskAccountType :keyword target_disk_name: The name for the target managed disk. :paramtype target_disk_name: str - """ - super().__init__(**kwargs) - self.disk_id = None - self.disk_name = None + :keyword sector_size_in_bytes: The logical sector size (in bytes), 512 by default. + :paramtype sector_size_in_bytes: int + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int + """ + super().__init__(**kwargs) + self.disk_id: Optional[str] = None + self.disk_name: Optional[str] = None self.disk_type = disk_type - self.disk_path = None - self.is_os_disk = None - self.capacity_in_bytes = None - self.log_storage_account_id = None - self.log_storage_account_sas_secret_name = None - self.disk_encryption_set_id = None - self.seed_managed_disk_id = None - self.seed_blob_uri = None - self.target_managed_disk_id = None - self.target_blob_uri = None + self.disk_path: Optional[str] = None + self.is_os_disk: Optional[str] = None + self.capacity_in_bytes: Optional[int] = None + self.log_storage_account_id: Optional[str] = None + self.log_storage_account_sas_secret_name: Optional[str] = None + self.disk_encryption_set_id: Optional[str] = None + self.seed_managed_disk_id: Optional[str] = None + self.seed_blob_uri: Optional[str] = None + self.target_managed_disk_id: Optional[str] = None + self.target_blob_uri: Optional[str] = None self.target_disk_name = target_disk_name - self.gateway_operation_details = None + self.gateway_operation_details: Optional["_models.GatewayOperationDetails"] = None + self.sector_size_in_bytes = sector_size_in_bytes + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class VMwareCbtProtectionContainerMappingDetails(ProtectionContainerMappingProviderSpecificDetails): +class VMwareCbtProtectionContainerMappingDetails( + ProtectionContainerMappingProviderSpecificDetails +): # pylint: disable=name-too-long """VMwareCbt provider specific container mapping details. Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -28869,20 +31730,20 @@ def __init__(self, *, excluded_skus: Optional[List[str]] = None, **kwargs: Any) """ super().__init__(**kwargs) self.instance_type: str = "VMwareCbt" - self.key_vault_id = None - self.key_vault_uri = None - self.storage_account_id = None - self.storage_account_sas_secret_name = None - self.service_bus_connection_string_secret_name = None - self.target_location = None - self.role_size_to_nic_count_map = None + self.key_vault_id: Optional[str] = None + self.key_vault_uri: Optional[str] = None + self.storage_account_id: Optional[str] = None + self.storage_account_sas_secret_name: Optional[str] = None + self.service_bus_connection_string_secret_name: Optional[str] = None + self.target_location: Optional[str] = None + self.role_size_to_nic_count_map: Optional[Dict[str, int]] = None self.excluded_skus = excluded_skus class VMwareCbtResumeReplicationInput(ResumeReplicationProviderSpecificInput): """VMwareCbt specific resume replication input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -28913,7 +31774,7 @@ def __init__(self, *, delete_migration_resources: Optional[str] = None, **kwargs class VMwareCbtResyncInput(ResyncProviderSpecificInput): """VMwareCbt specific resync input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -29011,7 +31872,7 @@ def __init__( class VMwareCbtTestMigrateInput(TestMigrateProviderSpecificInput): """VMwareCbt specific test migrate input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -29023,6 +31884,9 @@ class VMwareCbtTestMigrateInput(TestMigrateProviderSpecificInput): :vartype vm_nics: list[~azure.mgmt.recoveryservicessiterecovery.models.VMwareCbtNicInput] :ivar os_upgrade_version: A value indicating the inplace OS Upgrade version. :vartype os_upgrade_version: str + :ivar post_migration_steps: The managed run command script input. + :vartype post_migration_steps: + list[~azure.mgmt.recoveryservicessiterecovery.models.ManagedRunCommandScriptInput] """ _validation = { @@ -29037,6 +31901,7 @@ class VMwareCbtTestMigrateInput(TestMigrateProviderSpecificInput): "network_id": {"key": "networkId", "type": "str"}, "vm_nics": {"key": "vmNics", "type": "[VMwareCbtNicInput]"}, "os_upgrade_version": {"key": "osUpgradeVersion", "type": "str"}, + "post_migration_steps": {"key": "postMigrationSteps", "type": "[ManagedRunCommandScriptInput]"}, } def __init__( @@ -29046,6 +31911,7 @@ def __init__( network_id: str, vm_nics: Optional[List["_models.VMwareCbtNicInput"]] = None, os_upgrade_version: Optional[str] = None, + post_migration_steps: Optional[List["_models.ManagedRunCommandScriptInput"]] = None, **kwargs: Any ) -> None: """ @@ -29057,6 +31923,9 @@ def __init__( :paramtype vm_nics: list[~azure.mgmt.recoveryservicessiterecovery.models.VMwareCbtNicInput] :keyword os_upgrade_version: A value indicating the inplace OS Upgrade version. :paramtype os_upgrade_version: str + :keyword post_migration_steps: The managed run command script input. + :paramtype post_migration_steps: + list[~azure.mgmt.recoveryservicessiterecovery.models.ManagedRunCommandScriptInput] """ super().__init__(**kwargs) self.instance_type: str = "VMwareCbt" @@ -29064,12 +31933,13 @@ def __init__( self.network_id = network_id self.vm_nics = vm_nics self.os_upgrade_version = os_upgrade_version + self.post_migration_steps = post_migration_steps class VMwareCbtUpdateDiskInput(_serialization.Model): """VMwareCbt disk input for update. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar disk_id: The disk Id. Required. :vartype disk_id: str @@ -29077,6 +31947,12 @@ class VMwareCbtUpdateDiskInput(_serialization.Model): :vartype target_disk_name: str :ivar is_os_disk: A value indicating whether the disk is the OS disk. :vartype is_os_disk: str + :ivar iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :vartype iops: int + :ivar throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :vartype throughput_in_mbps: int + :ivar disk_size_in_gb: The target disk size in GB. + :vartype disk_size_in_gb: int """ _validation = { @@ -29087,10 +31963,21 @@ class VMwareCbtUpdateDiskInput(_serialization.Model): "disk_id": {"key": "diskId", "type": "str"}, "target_disk_name": {"key": "targetDiskName", "type": "str"}, "is_os_disk": {"key": "isOSDisk", "type": "str"}, + "iops": {"key": "iops", "type": "int"}, + "throughput_in_mbps": {"key": "throughputInMbps", "type": "int"}, + "disk_size_in_gb": {"key": "diskSizeInGB", "type": "int"}, } def __init__( - self, *, disk_id: str, target_disk_name: Optional[str] = None, is_os_disk: Optional[str] = None, **kwargs: Any + self, + *, + disk_id: str, + target_disk_name: Optional[str] = None, + is_os_disk: Optional[str] = None, + iops: Optional[int] = None, + throughput_in_mbps: Optional[int] = None, + disk_size_in_gb: Optional[int] = None, + **kwargs: Any ) -> None: """ :keyword disk_id: The disk Id. Required. @@ -29099,19 +31986,26 @@ def __init__( :paramtype target_disk_name: str :keyword is_os_disk: A value indicating whether the disk is the OS disk. :paramtype is_os_disk: str + :keyword iops: The number of IOPS allowed for Premium V2 and Ultra disks. + :paramtype iops: int + :keyword throughput_in_mbps: The total throughput in Mbps for Premium V2 and Ultra disks. + :paramtype throughput_in_mbps: int + :keyword disk_size_in_gb: The target disk size in GB. + :paramtype disk_size_in_gb: int """ super().__init__(**kwargs) self.disk_id = disk_id self.target_disk_name = target_disk_name self.is_os_disk = is_os_disk + self.iops = iops + self.throughput_in_mbps = throughput_in_mbps + self.disk_size_in_gb = disk_size_in_gb -class VMwareCbtUpdateMigrationItemInput( - UpdateMigrationItemProviderSpecificInput -): # pylint: disable=too-many-instance-attributes +class VMwareCbtUpdateMigrationItemInput(UpdateMigrationItemProviderSpecificInput): """VMwareCbt specific update migration item input. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: The class type. Required. :vartype instance_type: str @@ -29146,6 +32040,12 @@ class VMwareCbtUpdateMigrationItemInput( "NoLicenseType", "PAYG", and "AHUB". :vartype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :ivar linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :vartype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :ivar user_selected_os_name: The OS name selected by user. + :vartype user_selected_os_name: str :ivar perform_auto_resync: A value indicating whether auto resync is to be done. :vartype perform_auto_resync: str :ivar target_vm_tags: The target VM tags. @@ -29175,6 +32075,8 @@ class VMwareCbtUpdateMigrationItemInput( "vm_disks": {"key": "vmDisks", "type": "[VMwareCbtUpdateDiskInput]"}, "license_type": {"key": "licenseType", "type": "str"}, "sql_server_license_type": {"key": "sqlServerLicenseType", "type": "str"}, + "linux_license_type": {"key": "linuxLicenseType", "type": "str"}, + "user_selected_os_name": {"key": "userSelectedOSName", "type": "str"}, "perform_auto_resync": {"key": "performAutoResync", "type": "str"}, "target_vm_tags": {"key": "targetVmTags", "type": "{str}"}, "target_disk_tags": {"key": "targetDiskTags", "type": "{str}"}, @@ -29197,6 +32099,8 @@ def __init__( vm_disks: Optional[List["_models.VMwareCbtUpdateDiskInput"]] = None, license_type: Optional[Union[str, "_models.LicenseType"]] = None, sql_server_license_type: Optional[Union[str, "_models.SqlServerLicenseType"]] = None, + linux_license_type: Optional[Union[str, "_models.LinuxLicenseType"]] = None, + user_selected_os_name: Optional[str] = None, perform_auto_resync: Optional[str] = None, target_vm_tags: Optional[Dict[str, str]] = None, target_disk_tags: Optional[Dict[str, str]] = None, @@ -29235,6 +32139,12 @@ def __init__( "NotSpecified", "NoLicenseType", "PAYG", and "AHUB". :paramtype sql_server_license_type: str or ~azure.mgmt.recoveryservicessiterecovery.models.SqlServerLicenseType + :keyword linux_license_type: The license type for Linux VM's. Known values are: "NotSpecified", + "NoLicenseType", and "LinuxServer". + :paramtype linux_license_type: str or + ~azure.mgmt.recoveryservicessiterecovery.models.LinuxLicenseType + :keyword user_selected_os_name: The OS name selected by user. + :paramtype user_selected_os_name: str :keyword perform_auto_resync: A value indicating whether auto resync is to be done. :paramtype perform_auto_resync: str :keyword target_vm_tags: The target VM tags. @@ -29259,16 +32169,18 @@ def __init__( self.vm_disks = vm_disks self.license_type = license_type self.sql_server_license_type = sql_server_license_type + self.linux_license_type = linux_license_type + self.user_selected_os_name = user_selected_os_name self.perform_auto_resync = perform_auto_resync self.target_vm_tags = target_vm_tags self.target_disk_tags = target_disk_tags self.target_nic_tags = target_nic_tags -class VMwareDetails(FabricSpecificDetails): # pylint: disable=too-many-instance-attributes +class VMwareDetails(FabricSpecificDetails): """Store the fabric details specific to the VMware fabric. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -29538,7 +32450,7 @@ def __init__( # pylint: disable=too-many-locals class VMwareV2FabricCreationInput(FabricSpecificCreationInput): """VMwareV2 fabric provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Required. :vartype instance_type: str @@ -29590,7 +32502,7 @@ class VMwareV2FabricSpecificDetails(FabricSpecificDetails): Variables are only populated by the server, and will be ignored when sending a request. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str @@ -29637,19 +32549,19 @@ def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.instance_type: str = "VMwareV2" - self.vmware_site_id = None - self.physical_site_id = None - self.migration_solution_id = None - self.service_endpoint = None - self.service_resource_id = None - self.service_container_id = None - self.process_servers = None + self.vmware_site_id: Optional[str] = None + self.physical_site_id: Optional[str] = None + self.migration_solution_id: Optional[str] = None + self.service_endpoint: Optional[str] = None + self.service_resource_id: Optional[str] = None + self.service_container_id: Optional[str] = None + self.process_servers: Optional[List["_models.ProcessServerDetails"]] = None -class VMwareVirtualMachineDetails(ConfigurationSettings): # pylint: disable=too-many-instance-attributes +class VMwareVirtualMachineDetails(ConfigurationSettings): """VMware provider specific settings. - All required parameters must be populated in order to send to Azure. + All required parameters must be populated in order to send to server. :ivar instance_type: Gets the class type. Overridden in derived classes. Required. :vartype instance_type: str diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_site_recovery_management_client_enums.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_site_recovery_management_client_enums.py index c2eb730484de..9f7c81b92e4e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_site_recovery_management_client_enums.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/models/_site_recovery_management_client_enums.py @@ -91,6 +91,14 @@ class ChurnOptionSelected(str, Enum, metaclass=CaseInsensitiveEnumMeta): HIGH = "High" +class ClusterRecoveryPointType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The recovery point type.""" + + NOT_SPECIFIED = "NotSpecified" + APPLICATION_CONSISTENT = "ApplicationConsistent" + CRASH_CONSISTENT = "CrashConsistent" + + class DataSyncStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The data sync option.""" @@ -106,11 +114,15 @@ class DisableProtectionReason(str, Enum, metaclass=CaseInsensitiveEnumMeta): class DiskAccountType(str, Enum, metaclass=CaseInsensitiveEnumMeta): - """The DiskType.""" + """The disk type.""" STANDARD_LRS = "Standard_LRS" PREMIUM_LRS = "Premium_LRS" STANDARD_SSD_LRS = "StandardSSD_LRS" + PREMIUM_V2_LRS = "PremiumV2_LRS" + ULTRA_SSD_LRS = "UltraSSD_LRS" + STANDARD_SSD_ZRS = "StandardSSD_ZRS" + PREMIUM_ZRS = "Premium_ZRS" class DiskReplicationProgressHealth(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -123,6 +135,15 @@ class DiskReplicationProgressHealth(str, Enum, metaclass=CaseInsensitiveEnumMeta QUEUED = "Queued" +class DiskState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The disk state.""" + + UNAVAILABLE = "Unavailable" + INITIAL_REPLICATION_PENDING = "InitialReplicationPending" + INITIAL_REPLICATION_FAILED = "InitialReplicationFailed" + PROTECTED = "Protected" + + class EthernetAddressType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The source IP address type.""" @@ -152,6 +173,13 @@ class FailoverDeploymentModel(str, Enum, metaclass=CaseInsensitiveEnumMeta): RESOURCE_MANAGER = "ResourceManager" +class FailoverDirection(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Failover direction.""" + + PRIMARY_TO_RECOVERY = "PrimaryToRecovery" + RECOVERY_TO_PRIMARY = "RecoveryToPrimary" + + class HealthErrorCategory(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The category of the health error.""" @@ -207,6 +235,14 @@ class LicenseType(str, Enum, metaclass=CaseInsensitiveEnumMeta): WINDOWS_SERVER = "WindowsServer" +class LinuxLicenseType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The license type for Linux VM's.""" + + NOT_SPECIFIED = "NotSpecified" + NO_LICENSE_TYPE = "NoLicenseType" + LINUX_SERVER = "LinuxServer" + + class MigrationItemOperation(str, Enum, metaclass=CaseInsensitiveEnumMeta): """MigrationItemOperation.""" @@ -395,6 +431,13 @@ class RpInMageRecoveryPointType(str, Enum, metaclass=CaseInsensitiveEnumMeta): CUSTOM = "Custom" +class SecurityConfiguration(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Security configuration state.""" + + DISABLED = "Disabled" + ENABLED = "Enabled" + + class SecurityType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The target VM security type.""" diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/__init__.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/__init__.py index b7fd6eae9142..f9d1125f15d2 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/__init__.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/__init__.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -5,38 +6,47 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position -from ._operations import Operations -from ._replication_alert_settings_operations import ReplicationAlertSettingsOperations -from ._replication_appliances_operations import ReplicationAppliancesOperations -from ._replication_eligibility_results_operations import ReplicationEligibilityResultsOperations -from ._replication_events_operations import ReplicationEventsOperations -from ._replication_fabrics_operations import ReplicationFabricsOperations -from ._replication_logical_networks_operations import ReplicationLogicalNetworksOperations -from ._replication_networks_operations import ReplicationNetworksOperations -from ._replication_network_mappings_operations import ReplicationNetworkMappingsOperations -from ._replication_protection_containers_operations import ReplicationProtectionContainersOperations -from ._replication_migration_items_operations import ReplicationMigrationItemsOperations -from ._migration_recovery_points_operations import MigrationRecoveryPointsOperations -from ._replication_protectable_items_operations import ReplicationProtectableItemsOperations -from ._replication_protected_items_operations import ReplicationProtectedItemsOperations -from ._recovery_points_operations import RecoveryPointsOperations -from ._target_compute_sizes_operations import TargetComputeSizesOperations -from ._replication_protection_container_mappings_operations import ReplicationProtectionContainerMappingsOperations -from ._replication_recovery_services_providers_operations import ReplicationRecoveryServicesProvidersOperations -from ._replication_storage_classifications_operations import ReplicationStorageClassificationsOperations -from ._replication_storage_classification_mappings_operations import ReplicationStorageClassificationMappingsOperations -from ._replicationv_centers_operations import ReplicationvCentersOperations -from ._replication_jobs_operations import ReplicationJobsOperations -from ._replication_policies_operations import ReplicationPoliciesOperations -from ._replication_protection_intents_operations import ReplicationProtectionIntentsOperations -from ._replication_recovery_plans_operations import ReplicationRecoveryPlansOperations -from ._supported_operating_systems_operations import SupportedOperatingSystemsOperations -from ._replication_vault_health_operations import ReplicationVaultHealthOperations -from ._replication_vault_setting_operations import ReplicationVaultSettingOperations +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._operations import Operations # type: ignore +from ._replication_alert_settings_operations import ReplicationAlertSettingsOperations # type: ignore +from ._replication_appliances_operations import ReplicationAppliancesOperations # type: ignore +from ._replication_eligibility_results_operations import ReplicationEligibilityResultsOperations # type: ignore +from ._replication_events_operations import ReplicationEventsOperations # type: ignore +from ._replication_fabrics_operations import ReplicationFabricsOperations # type: ignore +from ._replication_logical_networks_operations import ReplicationLogicalNetworksOperations # type: ignore +from ._replication_networks_operations import ReplicationNetworksOperations # type: ignore +from ._replication_network_mappings_operations import ReplicationNetworkMappingsOperations # type: ignore +from ._replication_protection_containers_operations import ReplicationProtectionContainersOperations # type: ignore +from ._replication_migration_items_operations import ReplicationMigrationItemsOperations # type: ignore +from ._migration_recovery_points_operations import MigrationRecoveryPointsOperations # type: ignore +from ._replication_protectable_items_operations import ReplicationProtectableItemsOperations # type: ignore +from ._replication_protected_items_operations import ReplicationProtectedItemsOperations # type: ignore +from ._recovery_points_operations import RecoveryPointsOperations # type: ignore +from ._target_compute_sizes_operations import TargetComputeSizesOperations # type: ignore +from ._replication_protection_clusters_operations import ReplicationProtectionClustersOperations # type: ignore +from ._cluster_recovery_points_operations import ClusterRecoveryPointsOperations # type: ignore +from ._cluster_recovery_point_operations import ClusterRecoveryPointOperations # type: ignore +from ._replication_protection_container_mappings_operations import ReplicationProtectionContainerMappingsOperations # type: ignore +from ._replication_recovery_services_providers_operations import ReplicationRecoveryServicesProvidersOperations # type: ignore +from ._replication_storage_classifications_operations import ReplicationStorageClassificationsOperations # type: ignore +from ._replication_storage_classification_mappings_operations import ReplicationStorageClassificationMappingsOperations # type: ignore +from ._replicationv_centers_operations import ReplicationvCentersOperations # type: ignore +from ._replication_jobs_operations import ReplicationJobsOperations # type: ignore +from ._replication_policies_operations import ReplicationPoliciesOperations # type: ignore +from ._replication_protection_intents_operations import ReplicationProtectionIntentsOperations # type: ignore +from ._replication_recovery_plans_operations import ReplicationRecoveryPlansOperations # type: ignore +from ._supported_operating_systems_operations import SupportedOperatingSystemsOperations # type: ignore +from ._replication_vault_health_operations import ReplicationVaultHealthOperations # type: ignore +from ._replication_vault_setting_operations import ReplicationVaultSettingOperations # type: ignore from ._patch import __all__ as _patch_all -from ._patch import * # pylint: disable=unused-wildcard-import +from ._patch import * from ._patch import patch_sdk as _patch_sdk __all__ = [ @@ -56,6 +66,9 @@ "ReplicationProtectedItemsOperations", "RecoveryPointsOperations", "TargetComputeSizesOperations", + "ReplicationProtectionClustersOperations", + "ClusterRecoveryPointsOperations", + "ClusterRecoveryPointOperations", "ReplicationProtectionContainerMappingsOperations", "ReplicationRecoveryServicesProvidersOperations", "ReplicationStorageClassificationsOperations", @@ -69,5 +82,5 @@ "ReplicationVaultHealthOperations", "ReplicationVaultSettingOperations", ] -__all__.extend([p for p in _patch_all if p not in __all__]) +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore _patch_sdk() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_cluster_recovery_point_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_cluster_recovery_point_operations.py new file mode 100644 index 000000000000..3cbc93c76d7d --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_cluster_recovery_point_operations.py @@ -0,0 +1,190 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from typing import Any, Callable, Dict, Optional, TypeVar + +from azure.core import PipelineClient +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.rest import HttpRequest, HttpResponse +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_get_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + recovery_point_name: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/recoveryPoints/{recoveryPointName}", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "recoveryPointName": _SERIALIZER.url( + "recovery_point_name", recovery_point_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + } + + _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="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +class ClusterRecoveryPointOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.recoveryservicessiterecovery.SiteRecoveryManagementClient`'s + :attr:`cluster_recovery_point` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs): + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + recovery_point_name: str, + **kwargs: Any + ) -> _models.ClusterRecoveryPoint: + """Gets a recovery point. + + Get the details of specified recovery point. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param recovery_point_name: The recovery point name. Required. + :type recovery_point_name: str + :return: ClusterRecoveryPoint or the result of cls(response) + :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPoint + :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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ClusterRecoveryPoint] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + recovery_point_name=recovery_point_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("ClusterRecoveryPoint", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_cluster_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_cluster_recovery_points_operations.py new file mode 100644 index 000000000000..6dad2d7c7fbb --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_cluster_recovery_points_operations.py @@ -0,0 +1,212 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar +import urllib.parse + +from azure.core import PipelineClient +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.rest import HttpRequest, HttpResponse +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models as _models +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_list_by_replication_protection_cluster_request( # pylint: disable=name-too-long + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/recoveryPoints", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +class ClusterRecoveryPointsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.recoveryservicessiterecovery.SiteRecoveryManagementClient`'s + :attr:`cluster_recovery_points` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs): + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_cluster( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> Iterable["_models.ClusterRecoveryPoint"]: + """Gets the list of cluster recovery points. + + The list of cluster recovery points. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An iterator like instance of either ClusterRecoveryPoint or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ClusterRecoveryPoint] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ClusterRecoveryPointCollection] = 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_list_by_replication_protection_cluster_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + 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 + ) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("ClusterRecoveryPointCollection", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_migration_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_migration_recovery_points_operations.py index 40e4fa83be9d..049e5cc0eb65 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_migration_recovery_points_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_migration_recovery_points_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,29 +37,29 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_migration_items_request( +def build_list_by_replication_migration_items_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -81,25 +82,25 @@ def build_get_request( protection_container_name: str, migration_item_name: str, migration_recovery_point_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints/{migrationRecoveryPointName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -134,10 +135,12 @@ class MigrationRecoveryPointsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_migration_items( @@ -153,7 +156,6 @@ def list_by_replication_migration_items( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either MigrationRecoveryPoint or the result of cls(response) :rtype: @@ -166,7 +168,7 @@ def list_by_replication_migration_items( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationRecoveryPointCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -177,20 +179,18 @@ def list_by_replication_migration_items( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_migration_items_request( + _request = build_list_by_replication_migration_items_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_migration_items.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -202,13 +202,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("MigrationRecoveryPointCollection", pipeline_response) @@ -218,11 +217,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -234,10 +233,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_migration_items.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints" - } - @distributed_trace def get( self, @@ -259,12 +254,11 @@ def get( :type migration_item_name: str :param migration_recovery_point_name: The migration recovery point name. Required. :type migration_recovery_point_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: MigrationRecoveryPoint or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.MigrationRecoveryPoint :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -278,25 +272,23 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationRecoveryPoint] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, migration_recovery_point_name=migration_recovery_point_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -305,13 +297,9 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("MigrationRecoveryPoint", pipeline_response) + deserialized = self._deserialize("MigrationRecoveryPoint", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints/{migrationRecoveryPointName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_operations.py index 2cd14b8614c1..54ad337168b7 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,14 +41,14 @@ def build_list_request(resource_group_name: str, subscription_id: str, **kwargs: _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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/operations", - ) # pylint: disable=line-too-long + ) path_format_arguments = { "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), @@ -78,10 +79,12 @@ class Operations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> Iterable["_models.OperationsDiscovery"]: @@ -89,7 +92,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.OperationsDiscovery"]: Operation to return the list of available operations. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OperationsDiscovery or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.OperationsDiscovery] @@ -101,7 +103,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.OperationsDiscovery"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.OperationsDiscoveryCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -112,16 +114,14 @@ def list(self, **kwargs: Any) -> Iterable["_models.OperationsDiscovery"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( + _request = build_list_request( resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -133,13 +133,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("OperationsDiscoveryCollection", pipeline_response) @@ -149,11 +148,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -164,7 +163,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/operations" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_recovery_points_operations.py index d6b9fa6ef69a..a015686a456a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_recovery_points_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_recovery_points_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,29 +37,29 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_protected_items_request( +def build_list_by_replication_protected_items_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -83,25 +84,25 @@ def build_get_request( protection_container_name: str, replicated_protected_item_name: str, recovery_point_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints/{recoveryPointName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -136,10 +137,12 @@ class RecoveryPointsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protected_items( @@ -155,7 +158,6 @@ def list_by_replication_protected_items( :type protection_container_name: str :param replicated_protected_item_name: The replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryPoint or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPoint] @@ -167,7 +169,7 @@ def list_by_replication_protected_items( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPointCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -178,20 +180,18 @@ def list_by_replication_protected_items( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protected_items_request( + _request = build_list_by_replication_protected_items_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protected_items.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -203,13 +203,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryPointCollection", pipeline_response) @@ -219,11 +218,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -235,10 +234,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_protected_items.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints" - } - @distributed_trace def get( self, @@ -260,12 +255,11 @@ def get( :type replicated_protected_item_name: str :param recovery_point_name: The recovery point name. Required. :type recovery_point_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: RecoveryPoint or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPoint :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -279,25 +273,23 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPoint] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, recovery_point_name=recovery_point_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -306,13 +298,9 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RecoveryPoint", pipeline_response) + deserialized = self._deserialize("RecoveryPoint", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/recoveryPoints/{recoveryPointName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_alert_settings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_alert_settings_operations.py index 2d4915d07ef6..26baaa19efe6 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_alert_settings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_alert_settings_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -20,15 +22,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -38,22 +39,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -69,22 +70,22 @@ def build_list_request( def build_get_request( - alert_setting_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + alert_setting_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings/{alertSettingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "alertSettingName": _SERIALIZER.url("alert_setting_name", alert_setting_name, "str"), } @@ -101,12 +102,12 @@ def build_get_request( def build_create_request( - alert_setting_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + alert_setting_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -114,10 +115,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings/{alertSettingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "alertSettingName": _SERIALIZER.url("alert_setting_name", alert_setting_name, "str"), } @@ -149,10 +150,12 @@ class ReplicationAlertSettingsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> Iterable["_models.Alert"]: @@ -160,7 +163,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.Alert"]: Gets the list of email notification(alert) configurations for the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Alert or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Alert] :raises ~azure.core.exceptions.HttpResponseError: @@ -171,7 +173,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.Alert"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.AlertCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -182,17 +184,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.Alert"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -204,13 +204,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("AlertCollection", pipeline_response) @@ -220,11 +219,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -236,10 +235,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings" - } - @distributed_trace def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: """Gets an email notification(alert) configuration. @@ -248,12 +243,11 @@ def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: :param alert_setting_name: The name of the email notification configuration. Required. :type alert_setting_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -267,22 +261,20 @@ def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Alert] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( alert_setting_name=alert_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -291,16 +283,12 @@ def get(self, alert_setting_name: str, **kwargs: Any) -> _models.Alert: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Alert", pipeline_response) + deserialized = self._deserialize("Alert", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings/{alertSettingName}" - } + return deserialized # type: ignore @overload def create( @@ -322,7 +310,6 @@ def create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: @@ -330,7 +317,7 @@ def create( @overload def create( - self, alert_setting_name: str, request: IO, *, content_type: str = "application/json", **kwargs: Any + self, alert_setting_name: str, request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> _models.Alert: """Configures email notifications for this vault. @@ -339,11 +326,10 @@ def create( :param alert_setting_name: The name of the email notification(alert) configuration. Required. :type alert_setting_name: str :param request: The input to configure the email notification(alert). Required. - :type request: IO + :type request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: @@ -351,7 +337,7 @@ def create( @distributed_trace def create( - self, alert_setting_name: str, request: Union[_models.ConfigureAlertRequest, IO], **kwargs: Any + self, alert_setting_name: str, request: Union[_models.ConfigureAlertRequest, IO[bytes]], **kwargs: Any ) -> _models.Alert: """Configures email notifications for this vault. @@ -360,17 +346,14 @@ def create( :param alert_setting_name: The name of the email notification(alert) configuration. Required. :type alert_setting_name: str :param request: The input to configure the email notification(alert). Is either a - ConfigureAlertRequest type or a IO type. Required. - :type request: ~azure.mgmt.recoveryservicessiterecovery.models.ConfigureAlertRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response + ConfigureAlertRequest type or a IO[bytes] type. Required. + :type request: ~azure.mgmt.recoveryservicessiterecovery.models.ConfigureAlertRequest or + IO[bytes] :return: Alert or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Alert :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -393,25 +376,23 @@ def create( else: _json = self._serialize.body(request, "ConfigureAlertRequest") - request = build_create_request( + _request = build_create_request( alert_setting_name=alert_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.create.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -420,13 +401,9 @@ def create( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Alert", pipeline_response) + deserialized = self._deserialize("Alert", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAlertSettings/{alertSettingName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_appliances_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_appliances_operations.py index d32c37a3a16a..7e63601728e1 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_appliances_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_appliances_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -37,22 +38,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, *, filter: Optional[str] = None, **kwargs: Any + resource_group_name: str, resource_name: str, subscription_id: str, *, filter: Optional[str] = None, **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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAppliances", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -83,10 +84,12 @@ class ReplicationAppliancesOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models.ReplicationAppliance"]: @@ -96,7 +99,6 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationAppliance or the result of cls(response) :rtype: @@ -109,7 +111,7 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ApplianceCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -120,18 +122,16 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -143,13 +143,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ApplianceCollection", pipeline_response) @@ -159,11 +158,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -174,7 +173,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAppliances" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_eligibility_results_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_eligibility_results_operations.py index 45e23489d83f..18cdc1bf7f76 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_eligibility_results_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_eligibility_results_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,10 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Optional, TypeVar +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -17,15 +19,14 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,14 +41,14 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults", - ) # pylint: disable=line-too-long + ) path_format_arguments = { "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), @@ -71,14 +72,14 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults/default", - ) # pylint: disable=line-too-long + ) path_format_arguments = { "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), @@ -110,10 +111,12 @@ class ReplicationEligibilityResultsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEligibilityResultsCollection: @@ -123,12 +126,11 @@ def list(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationE :param virtual_machine_name: Virtual Machine name. Required. :type virtual_machine_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationEligibilityResultsCollection or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationEligibilityResultsCollection :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -142,21 +144,19 @@ def list(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationE api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationEligibilityResultsCollection] = kwargs.pop("cls", None) - request = build_list_request( + _request = build_list_request( virtual_machine_name=virtual_machine_name, resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -165,16 +165,12 @@ def list(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationE map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationEligibilityResultsCollection", pipeline_response) + deserialized = self._deserialize("ReplicationEligibilityResultsCollection", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults" - } + return deserialized # type: ignore @distributed_trace def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEligibilityResults: @@ -184,12 +180,11 @@ def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEl :param virtual_machine_name: Virtual Machine name. Required. :type virtual_machine_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationEligibilityResults or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationEligibilityResults :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -203,21 +198,19 @@ def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEl api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationEligibilityResults] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( virtual_machine_name=virtual_machine_name, resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -226,13 +219,9 @@ def get(self, virtual_machine_name: str, **kwargs: Any) -> _models.ReplicationEl map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationEligibilityResults", pipeline_response) + deserialized = self._deserialize("ReplicationEligibilityResults", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults/default" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_events_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_events_operations.py index d3e9a50e2f0c..d8cc178f02f0 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_events_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_events_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -37,22 +38,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, *, filter: Optional[str] = None, **kwargs: Any + resource_group_name: str, resource_name: str, subscription_id: str, *, filter: Optional[str] = None, **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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationEvents", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -70,22 +71,22 @@ def build_list_request( def build_get_request( - event_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + event_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationEvents/{eventName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "eventName": _SERIALIZER.url("event_name", event_name, "str"), } @@ -115,10 +116,12 @@ class ReplicationEventsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models.Event"]: @@ -128,7 +131,6 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Event or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Event] :raises ~azure.core.exceptions.HttpResponseError: @@ -139,7 +141,7 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.EventCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -150,18 +152,16 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -173,13 +173,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("EventCollection", pipeline_response) @@ -189,11 +188,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -205,10 +204,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationEvents" - } - @distributed_trace def get(self, event_name: str, **kwargs: Any) -> _models.Event: """Get the details of an Azure Site recovery event. @@ -217,12 +212,11 @@ def get(self, event_name: str, **kwargs: Any) -> _models.Event: :param event_name: The name of the Azure Site Recovery event. Required. :type event_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Event or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Event :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -236,22 +230,20 @@ def get(self, event_name: str, **kwargs: Any) -> _models.Event: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Event] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( event_name=event_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -260,13 +252,9 @@ def get(self, event_name: str, **kwargs: Any) -> _models.Event: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Event", pipeline_response) + deserialized = self._deserialize("Event", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationEvents/{eventName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_fabrics_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_fabrics_operations.py index 2dc3d779acf8..0040725c20a3 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_fabrics_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_fabrics_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,22 +43,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -72,8 +75,8 @@ def build_list_request( def build_get_request( fabric_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, filter: Optional[str] = None, @@ -82,17 +85,17 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -111,12 +114,12 @@ def build_get_request( def build_create_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -124,10 +127,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -146,19 +149,19 @@ def build_create_request( def build_purge_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -172,22 +175,22 @@ def build_purge_request( def build_check_consistency_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/checkConsistency", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -204,19 +207,19 @@ def build_check_consistency_request( def build_migrate_to_aad_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/migratetoaad", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -230,12 +233,12 @@ def build_migrate_to_aad_request( def build_reassociate_gateway_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -243,10 +246,10 @@ def build_reassociate_gateway_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/reassociateGateway", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -265,19 +268,19 @@ def build_reassociate_gateway_request( def build_delete_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/remove", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -291,12 +294,12 @@ def build_delete_request( def build_renew_certificate_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -304,10 +307,10 @@ def build_renew_certificate_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/renewCertificate", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -331,14 +334,14 @@ def build_remove_infra_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/removeInfra", - ) # pylint: disable=line-too-long + ) path_format_arguments = { "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), @@ -375,10 +378,12 @@ class ReplicationFabricsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> Iterable["_models.Fabric"]: @@ -386,7 +391,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.Fabric"]: Gets a list of the Azure Site Recovery fabrics in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Fabric or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -397,7 +401,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.Fabric"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.FabricCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -408,17 +412,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.Fabric"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -430,13 +432,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("FabricCollection", pipeline_response) @@ -446,11 +447,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -462,10 +463,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics" - } - @distributed_trace def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: Any) -> _models.Fabric: """Gets the details of an ASR fabric. @@ -476,12 +473,11 @@ def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: Any) -> :type fabric_name: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Fabric or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Fabric :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -495,23 +491,21 @@ def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: Any) -> api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Fabric] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -520,21 +514,17 @@ def get(self, fabric_name: str, filter: Optional[str] = None, **kwargs: Any) -> map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return deserialized # type: ignore def _create_initial( - self, fabric_name: str, input: Union[_models.FabricCreationInput, IO], **kwargs: Any - ) -> Optional[_models.Fabric]: - error_map = { + self, fabric_name: str, input: Union[_models.FabricCreationInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -547,7 +537,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -557,45 +547,42 @@ def _create_initial( else: _json = self._serialize.body(input, "FabricCreationInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -617,14 +604,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -632,7 +611,7 @@ def begin_create( @overload def begin_create( - self, fabric_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, fabric_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.Fabric]: """Creates an Azure Site Recovery fabric. @@ -641,18 +620,10 @@ def begin_create( :param fabric_name: Name of the ASR fabric. Required. :type fabric_name: str :param input: Fabric creation input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -660,7 +631,7 @@ def begin_create( @distributed_trace def begin_create( - self, fabric_name: str, input: Union[_models.FabricCreationInput, IO], **kwargs: Any + self, fabric_name: str, input: Union[_models.FabricCreationInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Fabric]: """Creates an Azure Site Recovery fabric. @@ -668,20 +639,9 @@ def begin_create( :param fabric_name: Name of the ASR fabric. Required. :type fabric_name: str - :param input: Fabric creation input. Is either a FabricCreationInput type or a IO type. + :param input: Fabric creation input. Is either a FabricCreationInput type or a IO[bytes] type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.FabricCreationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.FabricCreationInput or IO[bytes] :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -706,12 +666,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -721,20 +682,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return LROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _purge_initial(self, fabric_name: str, **kwargs: Any) -> None: # pylint: disable=inconsistent-return-statements - error_map = { + def _purge_initial(self, fabric_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -746,38 +705,41 @@ def _purge_initial(self, fabric_name: str, **kwargs: Any) -> None: # pylint: di _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } + return deserialized # type: ignore @distributed_trace def begin_purge(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: @@ -787,14 +749,6 @@ def begin_purge(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: :param fabric_name: ASR fabric to purge. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -808,7 +762,7 @@ def begin_purge(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: 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._purge_initial( # type: ignore + raw_result = self._purge_initial( fabric_name=fabric_name, api_version=api_version, cls=lambda x, y, z: x, @@ -816,11 +770,12 @@ def begin_purge(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -829,20 +784,16 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(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 - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}" - } - - def _check_consistency_initial(self, fabric_name: str, **kwargs: Any) -> Optional[_models.Fabric]: - error_map = { + def _check_consistency_initial(self, fabric_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -854,44 +805,41 @@ def _check_consistency_initial(self, fabric_name: str, **kwargs: Any) -> Optiona _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_check_consistency_request( + _request = build_check_consistency_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._check_consistency_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _check_consistency_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/checkConsistency" - } + return deserialized # type: ignore @distributed_trace def begin_check_consistency(self, fabric_name: str, **kwargs: Any) -> LROPoller[_models.Fabric]: @@ -901,14 +849,6 @@ def begin_check_consistency(self, fabric_name: str, **kwargs: Any) -> LROPoller[ :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -930,12 +870,13 @@ def begin_check_consistency(self, fabric_name: str, **kwargs: Any) -> LROPoller[ params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -945,22 +886,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_check_consistency.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/checkConsistency" - } + return LROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _migrate_to_aad_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + def _migrate_to_aad_initial(self, fabric_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -972,38 +909,41 @@ def _migrate_to_aad_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_migrate_to_aad_request( + _request = build_migrate_to_aad_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._migrate_to_aad_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _migrate_to_aad_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/migratetoaad" - } + return deserialized # type: ignore @distributed_trace def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: @@ -1013,14 +953,6 @@ def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> LROPoller[Non :param fabric_name: ASR fabric to migrate. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1034,7 +966,7 @@ def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> LROPoller[Non 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._migrate_to_aad_initial( # type: ignore + raw_result = self._migrate_to_aad_initial( fabric_name=fabric_name, api_version=api_version, cls=lambda x, y, z: x, @@ -1042,11 +974,12 @@ def begin_migrate_to_aad(self, fabric_name: str, **kwargs: Any) -> LROPoller[Non params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1055,25 +988,21 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_migrate_to_aad.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/migratetoaad" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _reassociate_gateway_initial( self, fabric_name: str, - failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO], + failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.Fabric]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1086,7 +1015,7 @@ def _reassociate_gateway_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1096,45 +1025,42 @@ def _reassociate_gateway_initial( else: _json = self._serialize.body(failover_process_server_request, "FailoverProcessServerRequest") - request = build_reassociate_gateway_request( + _request = build_reassociate_gateway_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._reassociate_gateway_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _reassociate_gateway_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/reassociateGateway" - } + return deserialized # type: ignore @overload def begin_reassociate_gateway( @@ -1158,14 +1084,6 @@ def begin_reassociate_gateway( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -1175,7 +1093,7 @@ def begin_reassociate_gateway( def begin_reassociate_gateway( self, fabric_name: str, - failover_process_server_request: IO, + failover_process_server_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1188,18 +1106,10 @@ def begin_reassociate_gateway( :type fabric_name: str :param failover_process_server_request: The input to the failover process server operation. Required. - :type failover_process_server_request: IO + :type failover_process_server_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -1209,7 +1119,7 @@ def begin_reassociate_gateway( def begin_reassociate_gateway( self, fabric_name: str, - failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO], + failover_process_server_request: Union[_models.FailoverProcessServerRequest, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Fabric]: """Perform failover of the process server. @@ -1219,20 +1129,9 @@ def begin_reassociate_gateway( :param fabric_name: The name of the fabric containing the process server. Required. :type fabric_name: str :param failover_process_server_request: The input to the failover process server operation. Is - either a FailoverProcessServerRequest type or a IO type. Required. + either a FailoverProcessServerRequest type or a IO[bytes] type. Required. :type failover_process_server_request: - ~azure.mgmt.recoveryservicessiterecovery.models.FailoverProcessServerRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.FailoverProcessServerRequest or IO[bytes] :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -1257,12 +1156,13 @@ def begin_reassociate_gateway( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1272,22 +1172,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_reassociate_gateway.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/reassociateGateway" - } + return LROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + def _delete_initial(self, fabric_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1299,38 +1195,41 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/remove" - } + return deserialized # type: ignore @distributed_trace def begin_delete(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: @@ -1340,14 +1239,6 @@ def begin_delete(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: :param fabric_name: ASR fabric to delete. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1361,7 +1252,7 @@ def begin_delete(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, api_version=api_version, cls=lambda x, y, z: x, @@ -1369,11 +1260,12 @@ def begin_delete(self, fabric_name: str, **kwargs: Any) -> LROPoller[None]: params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1382,22 +1274,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/remove" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _renew_certificate_initial( - self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO], **kwargs: Any - ) -> Optional[_models.Fabric]: - error_map = { + self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1410,7 +1298,7 @@ def _renew_certificate_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Fabric]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1420,45 +1308,42 @@ def _renew_certificate_initial( else: _json = self._serialize.body(renew_certificate, "RenewCertificateInput") - request = build_renew_certificate_request( + _request = build_renew_certificate_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._renew_certificate_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _renew_certificate_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/renewCertificate" - } + return deserialized # type: ignore @overload def begin_renew_certificate( @@ -1480,14 +1365,6 @@ def begin_renew_certificate( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -1495,7 +1372,7 @@ def begin_renew_certificate( @overload def begin_renew_certificate( - self, fabric_name: str, renew_certificate: IO, *, content_type: str = "application/json", **kwargs: Any + self, fabric_name: str, renew_certificate: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.Fabric]: """Renews certificate for the fabric. @@ -1504,18 +1381,10 @@ def begin_renew_certificate( :param fabric_name: fabric name to renew certs for. Required. :type fabric_name: str :param renew_certificate: Renew certificate input. Required. - :type renew_certificate: IO + :type renew_certificate: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -1523,7 +1392,7 @@ def begin_renew_certificate( @distributed_trace def begin_renew_certificate( - self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO], **kwargs: Any + self, fabric_name: str, renew_certificate: Union[_models.RenewCertificateInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Fabric]: """Renews certificate for the fabric. @@ -1532,20 +1401,9 @@ def begin_renew_certificate( :param fabric_name: fabric name to renew certs for. Required. :type fabric_name: str :param renew_certificate: Renew certificate input. Is either a RenewCertificateInput type or a - IO type. Required. + IO[bytes] type. Required. :type renew_certificate: ~azure.mgmt.recoveryservicessiterecovery.models.RenewCertificateInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either Fabric or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Fabric] :raises ~azure.core.exceptions.HttpResponseError: @@ -1570,12 +1428,13 @@ def begin_renew_certificate( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Fabric", pipeline_response) + deserialized = self._deserialize("Fabric", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1585,22 +1444,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Fabric].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_renew_certificate.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/renewCertificate" - } + return LROPoller[_models.Fabric]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _remove_infra_initial( # pylint: disable=inconsistent-return-statements - self, resource_name: str, fabric_name: str, **kwargs: Any - ) -> None: - error_map = { + def _remove_infra_initial(self, resource_name: str, fabric_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1612,29 +1467,32 @@ def _remove_infra_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_remove_infra_request( + _request = build_remove_infra_request( resource_name=resource_name, fabric_name=fabric_name, resource_group_name=self._config.resource_group_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._remove_infra_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) @@ -1642,12 +1500,12 @@ def _remove_infra_initial( # pylint: disable=inconsistent-return-statements response_headers = {} response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, response_headers) + return cls(pipeline_response, deserialized, response_headers) # type: ignore - _remove_infra_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/removeInfra" - } + return deserialized # type: ignore @distributed_trace def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwargs: Any) -> LROPoller[None]: @@ -1659,14 +1517,6 @@ def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwargs: Any :type resource_name: str :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1680,7 +1530,7 @@ def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwargs: Any 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._remove_infra_initial( # type: ignore + raw_result = self._remove_infra_initial( resource_name=resource_name, fabric_name=fabric_name, api_version=api_version, @@ -1689,11 +1539,12 @@ def begin_remove_infra(self, resource_name: str, fabric_name: str, **kwargs: Any params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1702,14 +1553,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_remove_infra.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/removeInfra" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_jobs_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_jobs_operations.py index 126d92397d7f..2aa6505e08bf 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_jobs_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_jobs_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,22 +43,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, *, filter: Optional[str] = None, **kwargs: Any + resource_group_name: str, resource_name: str, subscription_id: str, *, filter: Optional[str] = None, **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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -73,22 +76,22 @@ def build_list_request( def build_get_request( - job_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + job_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "jobName": _SERIALIZER.url("job_name", job_name, "str"), } @@ -105,22 +108,22 @@ def build_get_request( def build_cancel_request( - job_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + job_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/cancel", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "jobName": _SERIALIZER.url("job_name", job_name, "str"), } @@ -137,22 +140,22 @@ def build_cancel_request( def build_restart_request( - job_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + job_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/restart", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "jobName": _SERIALIZER.url("job_name", job_name, "str"), } @@ -169,12 +172,12 @@ def build_restart_request( def build_resume_request( - job_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + job_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -182,10 +185,10 @@ def build_resume_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/resume", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "jobName": _SERIALIZER.url("job_name", job_name, "str"), } @@ -204,12 +207,12 @@ def build_resume_request( def build_export_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -217,10 +220,10 @@ def build_export_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/export", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -251,10 +254,12 @@ class ReplicationJobsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models.Job"]: @@ -264,7 +269,6 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Job or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -275,7 +279,7 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.JobCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -286,18 +290,16 @@ def list(self, filter: Optional[str] = None, **kwargs: Any) -> Iterable["_models def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -309,13 +311,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("JobCollection", pipeline_response) @@ -325,11 +326,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -341,10 +342,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs" - } - @distributed_trace def get(self, job_name: str, **kwargs: Any) -> _models.Job: """Gets the job details. @@ -353,12 +350,11 @@ def get(self, job_name: str, **kwargs: Any) -> _models.Job: :param job_name: Job identifier. Required. :type job_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Job or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Job :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -372,22 +368,20 @@ def get(self, job_name: str, **kwargs: Any) -> _models.Job: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Job] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -396,19 +390,15 @@ def get(self, job_name: str, **kwargs: Any) -> _models.Job: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized + return deserialized # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}" - } - - def _cancel_initial(self, job_name: str, **kwargs: Any) -> Optional[_models.Job]: - error_map = { + def _cancel_initial(self, job_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -420,44 +410,41 @@ def _cancel_initial(self, job_name: str, **kwargs: Any) -> Optional[_models.Job] _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_cancel_request( + _request = build_cancel_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._cancel_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _cancel_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/cancel" - } + return deserialized # type: ignore @distributed_trace def begin_cancel(self, job_name: str, **kwargs: Any) -> LROPoller[_models.Job]: @@ -467,14 +454,6 @@ def begin_cancel(self, job_name: str, **kwargs: Any) -> LROPoller[_models.Job]: :param job_name: Job identifier. Required. :type job_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -496,12 +475,13 @@ def begin_cancel(self, job_name: str, **kwargs: Any) -> LROPoller[_models.Job]: params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -511,20 +491,16 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.Job](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - begin_cancel.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/cancel" - } - - def _restart_initial(self, job_name: str, **kwargs: Any) -> Optional[_models.Job]: - error_map = { + def _restart_initial(self, job_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -536,44 +512,41 @@ def _restart_initial(self, job_name: str, **kwargs: Any) -> Optional[_models.Job _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_restart_request( + _request = build_restart_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._restart_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _restart_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/restart" - } + return deserialized # type: ignore @distributed_trace def begin_restart(self, job_name: str, **kwargs: Any) -> LROPoller[_models.Job]: @@ -583,14 +556,6 @@ def begin_restart(self, job_name: str, **kwargs: Any) -> LROPoller[_models.Job]: :param job_name: Job identifier. Required. :type job_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -612,12 +577,13 @@ def begin_restart(self, job_name: str, **kwargs: Any) -> LROPoller[_models.Job]: params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -627,22 +593,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_restart.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/restart" - } + return LROPoller[_models.Job](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _resume_initial( - self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO], **kwargs: Any - ) -> Optional[_models.Job]: - error_map = { + self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -655,7 +617,7 @@ def _resume_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -665,45 +627,42 @@ def _resume_initial( else: _json = self._serialize.body(resume_job_params, "ResumeJobParams") - request = build_resume_request( + _request = build_resume_request( job_name=job_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resume_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _resume_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/resume" - } + return deserialized # type: ignore @overload def begin_resume( @@ -725,14 +684,6 @@ def begin_resume( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -740,7 +691,7 @@ def begin_resume( @overload def begin_resume( - self, job_name: str, resume_job_params: IO, *, content_type: str = "application/json", **kwargs: Any + self, job_name: str, resume_job_params: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.Job]: """Resumes the specified job. @@ -749,18 +700,10 @@ def begin_resume( :param job_name: Job identifier. Required. :type job_name: str :param resume_job_params: Resume rob comments. Required. - :type resume_job_params: IO + :type resume_job_params: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -768,7 +711,7 @@ def begin_resume( @distributed_trace def begin_resume( - self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO], **kwargs: Any + self, job_name: str, resume_job_params: Union[_models.ResumeJobParams, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Job]: """Resumes the specified job. @@ -776,20 +719,10 @@ def begin_resume( :param job_name: Job identifier. Required. :type job_name: str - :param resume_job_params: Resume rob comments. Is either a ResumeJobParams type or a IO type. - Required. - :type resume_job_params: ~azure.mgmt.recoveryservicessiterecovery.models.ResumeJobParams or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param resume_job_params: Resume rob comments. Is either a ResumeJobParams type or a IO[bytes] + type. Required. + :type resume_job_params: ~azure.mgmt.recoveryservicessiterecovery.models.ResumeJobParams or + IO[bytes] :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -814,12 +747,13 @@ def begin_resume( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -829,22 +763,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resume.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/{jobName}/resume" - } + return LROPoller[_models.Job](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _export_initial( - self, job_query_parameter: Union[_models.JobQueryParameter, IO], **kwargs: Any - ) -> Optional[_models.Job]: - error_map = { + self, job_query_parameter: Union[_models.JobQueryParameter, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -857,7 +787,7 @@ def _export_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Job]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -867,44 +797,41 @@ def _export_initial( else: _json = self._serialize.body(job_query_parameter, "JobQueryParameter") - request = build_export_request( - resource_name=self._config.resource_name, + _request = build_export_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._export_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Job", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _export_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/export" - } + return deserialized # type: ignore @overload def begin_export( @@ -919,14 +846,6 @@ def begin_export( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -934,25 +853,17 @@ def begin_export( @overload def begin_export( - self, job_query_parameter: IO, *, content_type: str = "application/json", **kwargs: Any + self, job_query_parameter: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.Job]: """Exports the details of the Azure Site Recovery jobs of the vault. The operation to export the details of the Azure Site Recovery jobs of the vault. :param job_query_parameter: job query filter. Required. - :type job_query_parameter: IO + :type job_query_parameter: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -960,27 +871,16 @@ def begin_export( @distributed_trace def begin_export( - self, job_query_parameter: Union[_models.JobQueryParameter, IO], **kwargs: Any + self, job_query_parameter: Union[_models.JobQueryParameter, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Job]: """Exports the details of the Azure Site Recovery jobs of the vault. The operation to export the details of the Azure Site Recovery jobs of the vault. - :param job_query_parameter: job query filter. Is either a JobQueryParameter type or a IO type. - Required. + :param job_query_parameter: job query filter. Is either a JobQueryParameter type or a IO[bytes] + type. Required. :type job_query_parameter: ~azure.mgmt.recoveryservicessiterecovery.models.JobQueryParameter or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either Job or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Job] :raises ~azure.core.exceptions.HttpResponseError: @@ -1004,12 +904,13 @@ def begin_export( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Job", pipeline_response) + deserialized = self._deserialize("Job", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1019,14 +920,10 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Job].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_export.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationJobs/export" - } + return LROPoller[_models.Job](self._client, raw_result, get_long_running_output, polling_method) # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_logical_networks_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_logical_networks_operations.py index 9c6e2c957528..d2edc4605680 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_logical_networks_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_logical_networks_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,23 +37,23 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_fabrics_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any +def build_list_by_replication_fabrics_request( # pylint: disable=name-too-long + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationLogicalNetworks", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -71,25 +72,25 @@ def build_list_by_replication_fabrics_request( def build_get_request( fabric_name: str, logical_network_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationLogicalNetworks/{logicalNetworkName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "logicalNetworkName": _SERIALIZER.url("logical_network_name", logical_network_name, "str"), @@ -120,10 +121,12 @@ class ReplicationLogicalNetworksOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterable["_models.LogicalNetwork"]: @@ -133,7 +136,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab :param fabric_name: Server Id. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either LogicalNetwork or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.LogicalNetwork] @@ -145,7 +147,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.LogicalNetworkCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -156,18 +158,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -179,13 +179,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("LogicalNetworkCollection", pipeline_response) @@ -195,11 +194,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -211,10 +210,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationLogicalNetworks" - } - @distributed_trace def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) -> _models.LogicalNetwork: """Gets a logical network with specified server id and logical network name. @@ -225,12 +220,11 @@ def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) -> _mo :type fabric_name: str :param logical_network_name: Logical network name. Required. :type logical_network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: LogicalNetwork or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.LogicalNetwork :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -244,23 +238,21 @@ def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) -> _mo api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.LogicalNetwork] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, logical_network_name=logical_network_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -269,13 +261,9 @@ def get(self, fabric_name: str, logical_network_name: str, **kwargs: Any) -> _mo map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("LogicalNetwork", pipeline_response) + deserialized = self._deserialize("LogicalNetwork", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationLogicalNetworks/{logicalNetworkName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_migration_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_migration_items_operations.py index d12af685aafd..da1487837c37 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_migration_items_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_migration_items_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,11 +42,11 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_protection_containers_request( +def build_list_by_replication_protection_containers_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, skip_token: Optional[str] = None, @@ -54,17 +57,17 @@ def build_list_by_replication_protection_containers_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -91,25 +94,25 @@ def build_get_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -131,15 +134,15 @@ def build_create_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -147,10 +150,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -174,8 +177,8 @@ def build_delete_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, delete_option: Optional[str] = None, @@ -183,15 +186,15 @@ def build_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -212,15 +215,15 @@ def build_update_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -228,10 +231,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -255,15 +258,15 @@ def build_migrate_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -271,10 +274,10 @@ def build_migrate_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrate", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -298,15 +301,15 @@ def build_pause_replication_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -314,10 +317,10 @@ def build_pause_replication_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/pauseReplication", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -341,15 +344,15 @@ def build_resume_replication_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -357,10 +360,10 @@ def build_resume_replication_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resumeReplication", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -384,15 +387,15 @@ def build_resync_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -400,10 +403,10 @@ def build_resync_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resync", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -427,15 +430,15 @@ def build_test_migrate_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -443,10 +446,10 @@ def build_test_migrate_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrate", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -470,15 +473,15 @@ def build_test_migrate_cleanup_request( fabric_name: str, protection_container_name: str, migration_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -486,10 +489,10 @@ def build_test_migrate_cleanup_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrateCleanup", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -510,8 +513,8 @@ def build_test_migrate_cleanup_request( def build_list_request( - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, skip_token: Optional[str] = None, @@ -522,17 +525,17 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationMigrationItems", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -567,13 +570,15 @@ class ReplicationMigrationItemsOperations: # pylint: disable=too-many-public-me def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, @@ -596,7 +601,6 @@ def list_by_replication_protection_containers( :type take_token: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either MigrationItem or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.MigrationItem] @@ -608,7 +612,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -619,22 +623,20 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, take_token=take_token, filter=filter, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -646,13 +648,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("MigrationItemCollection", pipeline_response) @@ -662,11 +663,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -678,10 +679,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems" - } - @distributed_trace def get( self, fabric_name: str, protection_container_name: str, migration_item_name: str, **kwargs: Any @@ -696,12 +693,11 @@ def get( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: MigrationItem or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.MigrationItem :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -715,24 +711,22 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationItem] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -741,26 +735,22 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.EnableMigrationInput, IO], + input: Union[_models.EnableMigrationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -773,7 +763,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -783,47 +773,44 @@ def _create_initial( else: _json = self._serialize.body(input, "EnableMigrationInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -851,14 +838,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -872,7 +851,7 @@ def begin_create( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -888,18 +867,10 @@ def begin_create( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param input: Enable migration input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -913,7 +884,7 @@ def begin_create( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.EnableMigrationInput, IO], + input: Union[_models.EnableMigrationInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Enables migration. @@ -926,20 +897,9 @@ def begin_create( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param input: Enable migration input. Is either a EnableMigrationInput type or a IO type. - Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableMigrationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Enable migration input. Is either a EnableMigrationInput type or a IO[bytes] + type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableMigrationInput or IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -968,12 +928,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -983,27 +944,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements + def _delete_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, delete_option: Optional[str] = None, **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1015,41 +974,44 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, delete_option=delete_option, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore @distributed_trace def begin_delete( @@ -1072,14 +1034,6 @@ def begin_delete( :type migration_item_name: str :param delete_option: The delete option. Default value is None. :type delete_option: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1093,7 +1047,7 @@ def begin_delete( 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, @@ -1104,11 +1058,12 @@ def begin_delete( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1117,27 +1072,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.UpdateMigrationItemInput, IO], + input: Union[_models.UpdateMigrationItemInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1150,7 +1101,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1160,47 +1111,44 @@ def _update_initial( else: _json = self._serialize.body(input, "UpdateMigrationItemInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -1228,14 +1176,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1249,7 +1189,7 @@ def begin_update( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1265,18 +1205,10 @@ def begin_update( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param input: Update migration item input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1290,7 +1222,7 @@ def begin_update( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.UpdateMigrationItemInput, IO], + input: Union[_models.UpdateMigrationItemInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Updates migration item. @@ -1303,20 +1235,10 @@ def begin_update( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param input: Update migration item input. Is either a UpdateMigrationItemInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMigrationItemInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update migration item input. Is either a UpdateMigrationItemInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMigrationItemInput or + IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1345,12 +1267,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1360,27 +1283,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _migrate_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - migrate_input: Union[_models.MigrateInput, IO], + migrate_input: Union[_models.MigrateInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1393,7 +1314,7 @@ def _migrate_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1403,47 +1324,44 @@ def _migrate_initial( else: _json = self._serialize.body(migrate_input, "MigrateInput") - request = build_migrate_request( + _request = build_migrate_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._migrate_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _migrate_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrate" - } + return deserialized # type: ignore @overload def begin_migrate( @@ -1471,14 +1389,6 @@ def begin_migrate( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1492,7 +1402,7 @@ def begin_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - migrate_input: IO, + migrate_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1508,18 +1418,10 @@ def begin_migrate( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param migrate_input: Migrate input. Required. - :type migrate_input: IO + :type migrate_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1533,7 +1435,7 @@ def begin_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - migrate_input: Union[_models.MigrateInput, IO], + migrate_input: Union[_models.MigrateInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Migrate item. @@ -1546,19 +1448,9 @@ def begin_migrate( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param migrate_input: Migrate input. Is either a MigrateInput type or a IO type. Required. - :type migrate_input: ~azure.mgmt.recoveryservicessiterecovery.models.MigrateInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param migrate_input: Migrate input. Is either a MigrateInput type or a IO[bytes] type. + Required. + :type migrate_input: ~azure.mgmt.recoveryservicessiterecovery.models.MigrateInput or IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1587,12 +1479,13 @@ def begin_migrate( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1602,27 +1495,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_migrate.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrate" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _pause_replication_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - pause_replication_input: Union[_models.PauseReplicationInput, IO], + pause_replication_input: Union[_models.PauseReplicationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1635,7 +1526,7 @@ def _pause_replication_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1645,47 +1536,44 @@ def _pause_replication_initial( else: _json = self._serialize.body(pause_replication_input, "PauseReplicationInput") - request = build_pause_replication_request( + _request = build_pause_replication_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._pause_replication_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _pause_replication_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/pauseReplication" - } + return deserialized # type: ignore @overload def begin_pause_replication( @@ -1714,14 +1602,6 @@ def begin_pause_replication( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1735,7 +1615,7 @@ def begin_pause_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - pause_replication_input: IO, + pause_replication_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1751,18 +1631,10 @@ def begin_pause_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param pause_replication_input: Pause replication input. Required. - :type pause_replication_input: IO + :type pause_replication_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1776,7 +1648,7 @@ def begin_pause_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - pause_replication_input: Union[_models.PauseReplicationInput, IO], + pause_replication_input: Union[_models.PauseReplicationInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Pause replication. @@ -1790,20 +1662,9 @@ def begin_pause_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param pause_replication_input: Pause replication input. Is either a PauseReplicationInput type - or a IO type. Required. + or a IO[bytes] type. Required. :type pause_replication_input: - ~azure.mgmt.recoveryservicessiterecovery.models.PauseReplicationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.PauseReplicationInput or IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1832,12 +1693,13 @@ def begin_pause_replication( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1847,27 +1709,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_pause_replication.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/pauseReplication" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _resume_replication_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - resume_replication_input: Union[_models.ResumeReplicationInput, IO], + resume_replication_input: Union[_models.ResumeReplicationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1880,7 +1740,7 @@ def _resume_replication_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1890,47 +1750,44 @@ def _resume_replication_initial( else: _json = self._serialize.body(resume_replication_input, "ResumeReplicationInput") - request = build_resume_replication_request( + _request = build_resume_replication_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resume_replication_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _resume_replication_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resumeReplication" - } + return deserialized # type: ignore @overload def begin_resume_replication( @@ -1959,14 +1816,6 @@ def begin_resume_replication( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -1980,7 +1829,7 @@ def begin_resume_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - resume_replication_input: IO, + resume_replication_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1996,18 +1845,10 @@ def begin_resume_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param resume_replication_input: Resume replication input. Required. - :type resume_replication_input: IO + :type resume_replication_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2021,7 +1862,7 @@ def begin_resume_replication( fabric_name: str, protection_container_name: str, migration_item_name: str, - resume_replication_input: Union[_models.ResumeReplicationInput, IO], + resume_replication_input: Union[_models.ResumeReplicationInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Resume replication. @@ -2035,20 +1876,9 @@ def begin_resume_replication( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param resume_replication_input: Resume replication input. Is either a ResumeReplicationInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type resume_replication_input: - ~azure.mgmt.recoveryservicessiterecovery.models.ResumeReplicationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.ResumeReplicationInput or IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2077,12 +1907,13 @@ def begin_resume_replication( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2092,27 +1923,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resume_replication.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resumeReplication" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _resync_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.ResyncInput, IO], + input: Union[_models.ResyncInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2125,7 +1954,7 @@ def _resync_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2135,47 +1964,44 @@ def _resync_initial( else: _json = self._serialize.body(input, "ResyncInput") - request = build_resync_request( + _request = build_resync_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resync_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _resync_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resync" - } + return deserialized # type: ignore @overload def begin_resync( @@ -2203,14 +2029,6 @@ def begin_resync( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2224,7 +2042,7 @@ def begin_resync( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2240,18 +2058,10 @@ def begin_resync( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param input: Resync input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2265,7 +2075,7 @@ def begin_resync( fabric_name: str, protection_container_name: str, migration_item_name: str, - input: Union[_models.ResyncInput, IO], + input: Union[_models.ResyncInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Resynchronizes replication. @@ -2278,19 +2088,8 @@ def begin_resync( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param input: Resync input. Is either a ResyncInput type or a IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.ResyncInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Resync input. Is either a ResyncInput type or a IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.ResyncInput or IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2319,12 +2118,13 @@ def begin_resync( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2334,27 +2134,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resync.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/resync" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _test_migrate_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_input: Union[_models.TestMigrateInput, IO], + test_migrate_input: Union[_models.TestMigrateInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2367,7 +2165,7 @@ def _test_migrate_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2377,47 +2175,44 @@ def _test_migrate_initial( else: _json = self._serialize.body(test_migrate_input, "TestMigrateInput") - request = build_test_migrate_request( + _request = build_test_migrate_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_migrate_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_migrate_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrate" - } + return deserialized # type: ignore @overload def begin_test_migrate( @@ -2445,14 +2240,6 @@ def begin_test_migrate( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2466,7 +2253,7 @@ def begin_test_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_input: IO, + test_migrate_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2482,18 +2269,10 @@ def begin_test_migrate( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param test_migrate_input: Test migrate input. Required. - :type test_migrate_input: IO + :type test_migrate_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2507,7 +2286,7 @@ def begin_test_migrate( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_input: Union[_models.TestMigrateInput, IO], + test_migrate_input: Union[_models.TestMigrateInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Test migrate item. @@ -2520,21 +2299,10 @@ def begin_test_migrate( :type protection_container_name: str :param migration_item_name: Migration item name. Required. :type migration_item_name: str - :param test_migrate_input: Test migrate input. Is either a TestMigrateInput type or a IO type. - Required. + :param test_migrate_input: Test migrate input. Is either a TestMigrateInput type or a IO[bytes] + type. Required. :type test_migrate_input: ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2563,12 +2331,13 @@ def begin_test_migrate( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2578,27 +2347,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_migrate.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrate" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _test_migrate_cleanup_initial( self, fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO], + test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.MigrationItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2611,7 +2378,7 @@ def _test_migrate_cleanup_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.MigrationItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2621,47 +2388,44 @@ def _test_migrate_cleanup_initial( else: _json = self._serialize.body(test_migrate_cleanup_input, "TestMigrateCleanupInput") - request = build_test_migrate_cleanup_request( + _request = build_test_migrate_cleanup_request( fabric_name=fabric_name, protection_container_name=protection_container_name, migration_item_name=migration_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_migrate_cleanup_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_migrate_cleanup_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrateCleanup" - } + return deserialized # type: ignore @overload def begin_test_migrate_cleanup( @@ -2690,14 +2454,6 @@ def begin_test_migrate_cleanup( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2711,7 +2467,7 @@ def begin_test_migrate_cleanup( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_cleanup_input: IO, + test_migrate_cleanup_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2727,18 +2483,10 @@ def begin_test_migrate_cleanup( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param test_migrate_cleanup_input: Test migrate cleanup input. Required. - :type test_migrate_cleanup_input: IO + :type test_migrate_cleanup_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2752,7 +2500,7 @@ def begin_test_migrate_cleanup( fabric_name: str, protection_container_name: str, migration_item_name: str, - test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO], + test_migrate_cleanup_input: Union[_models.TestMigrateCleanupInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.MigrationItem]: """Test migrate cleanup. @@ -2766,20 +2514,9 @@ def begin_test_migrate_cleanup( :param migration_item_name: Migration item name. Required. :type migration_item_name: str :param test_migrate_cleanup_input: Test migrate cleanup input. Is either a - TestMigrateCleanupInput type or a IO type. Required. + TestMigrateCleanupInput type or a IO[bytes] type. Required. :type test_migrate_cleanup_input: - ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateCleanupInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.TestMigrateCleanupInput or IO[bytes] :return: An instance of LROPoller that returns either MigrationItem or the result of cls(response) :rtype: @@ -2808,12 +2545,13 @@ def begin_test_migrate_cleanup( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("MigrationItem", pipeline_response) + deserialized = self._deserialize("MigrationItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2823,17 +2561,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.MigrationItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_migrate_cleanup.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrateCleanup" - } + return LROPoller[_models.MigrationItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list( @@ -2853,7 +2589,6 @@ def list( :type take_token: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either MigrationItem or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.MigrationItem] @@ -2865,7 +2600,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.MigrationItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2876,20 +2611,18 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, take_token=take_token, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -2901,13 +2634,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("MigrationItemCollection", pipeline_response) @@ -2917,11 +2649,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -2932,7 +2664,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationMigrationItems" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_network_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_network_mappings_operations.py index 00037350745c..f2ae34f3c999 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_network_mappings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_network_mappings_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,28 +42,28 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_networks_request( +def build_list_by_replication_networks_request( # pylint: disable=name-too-long fabric_name: str, network_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "networkName": _SERIALIZER.url("network_name", network_name, "str"), @@ -81,25 +84,25 @@ def build_get_request( fabric_name: str, network_name: str, network_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "networkName": _SERIALIZER.url("network_name", network_name, "str"), @@ -121,15 +124,15 @@ def build_create_request( fabric_name: str, network_name: str, network_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -137,10 +140,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "networkName": _SERIALIZER.url("network_name", network_name, "str"), @@ -164,22 +167,22 @@ def build_delete_request( fabric_name: str, network_name: str, network_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "networkName": _SERIALIZER.url("network_name", network_name, "str"), @@ -198,15 +201,15 @@ def build_update_request( fabric_name: str, network_name: str, network_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -214,10 +217,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "networkName": _SERIALIZER.url("network_name", network_name, "str"), @@ -238,22 +241,22 @@ def build_update_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationNetworkMappings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -282,10 +285,12 @@ class ReplicationNetworkMappingsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_networks( @@ -299,7 +304,6 @@ def list_by_replication_networks( :type fabric_name: str :param network_name: Primary network name. Required. :type network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either NetworkMapping or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.NetworkMapping] @@ -311,7 +315,7 @@ def list_by_replication_networks( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -322,19 +326,17 @@ def list_by_replication_networks( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_networks_request( + _request = build_list_by_replication_networks_request( fabric_name=fabric_name, network_name=network_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_networks.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -346,13 +348,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("NetworkMappingCollection", pipeline_response) @@ -362,11 +363,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -378,10 +379,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_networks.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings" - } - @distributed_trace def get( self, fabric_name: str, network_name: str, network_mapping_name: str, **kwargs: Any @@ -396,12 +393,11 @@ def get( :type network_name: str :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: NetworkMapping or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.NetworkMapping :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -415,24 +411,22 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkMapping] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -441,26 +435,22 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = self._deserialize("NetworkMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.CreateNetworkMappingInput, IO], + input: Union[_models.CreateNetworkMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.NetworkMapping]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -473,7 +463,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.NetworkMapping]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -483,47 +473,44 @@ def _create_initial( else: _json = self._serialize.body(input, "CreateNetworkMappingInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -551,14 +538,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -572,7 +551,7 @@ def begin_create( fabric_name: str, network_name: str, network_mapping_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -588,18 +567,10 @@ def begin_create( :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str :param input: Create network mapping input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -613,7 +584,7 @@ def begin_create( fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.CreateNetworkMappingInput, IO], + input: Union[_models.CreateNetworkMappingInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.NetworkMapping]: """Creates network mapping. @@ -626,20 +597,10 @@ def begin_create( :type network_name: str :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str - :param input: Create network mapping input. Is either a CreateNetworkMappingInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateNetworkMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Create network mapping input. Is either a CreateNetworkMappingInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateNetworkMappingInput or + IO[bytes] :return: An instance of LROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -668,12 +629,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = self._deserialize("NetworkMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -683,22 +645,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.NetworkMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return LROPoller[_models.NetworkMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements + def _delete_initial( self, fabric_name: str, network_name: str, network_mapping_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -710,40 +670,43 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore @distributed_trace def begin_delete( @@ -759,14 +722,6 @@ def begin_delete( :type network_name: str :param network_mapping_name: ARM Resource Name for network mapping. Required. :type network_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -780,7 +735,7 @@ def begin_delete( 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, @@ -790,11 +745,12 @@ def begin_delete( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -803,27 +759,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( self, fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.UpdateNetworkMappingInput, IO], + input: Union[_models.UpdateNetworkMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.NetworkMapping]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -836,7 +788,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.NetworkMapping]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -846,47 +798,44 @@ def _update_initial( else: _json = self._serialize.body(input, "UpdateNetworkMappingInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, network_name=network_name, network_mapping_name=network_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -914,14 +863,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -935,7 +876,7 @@ def begin_update( fabric_name: str, network_name: str, network_mapping_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -951,18 +892,10 @@ def begin_update( :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str :param input: Update network mapping input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -976,7 +909,7 @@ def begin_update( fabric_name: str, network_name: str, network_mapping_name: str, - input: Union[_models.UpdateNetworkMappingInput, IO], + input: Union[_models.UpdateNetworkMappingInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.NetworkMapping]: """Updates network mapping. @@ -989,20 +922,10 @@ def begin_update( :type network_name: str :param network_mapping_name: Network mapping name. Required. :type network_mapping_name: str - :param input: Update network mapping input. Is either a UpdateNetworkMappingInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateNetworkMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update network mapping input. Is either a UpdateNetworkMappingInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateNetworkMappingInput or + IO[bytes] :return: An instance of LROPoller that returns either NetworkMapping or the result of cls(response) :rtype: @@ -1031,12 +954,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("NetworkMapping", pipeline_response) + deserialized = self._deserialize("NetworkMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1046,17 +970,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.NetworkMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}/replicationNetworkMappings/{networkMappingName}" - } + return LROPoller[_models.NetworkMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.NetworkMapping"]: @@ -1064,7 +986,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.NetworkMapping"]: Lists all ASR network mappings in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either NetworkMapping or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.NetworkMapping] @@ -1076,7 +997,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.NetworkMapping"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1087,17 +1008,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.NetworkMapping"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1109,13 +1028,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("NetworkMappingCollection", pipeline_response) @@ -1125,11 +1043,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1140,7 +1058,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationNetworkMappings" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_networks_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_networks_operations.py index 6552dc2a9ad4..1bc9d280e545 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_networks_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_networks_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,23 +37,23 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_fabrics_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any +def build_list_by_replication_fabrics_request( # pylint: disable=name-too-long + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -71,25 +72,25 @@ def build_list_by_replication_fabrics_request( def build_get_request( fabric_name: str, network_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "networkName": _SERIALIZER.url("network_name", network_name, "str"), @@ -107,22 +108,22 @@ def build_get_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationNetworks", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -151,10 +152,12 @@ class ReplicationNetworksOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterable["_models.Network"]: @@ -164,7 +167,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Network or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Network] :raises ~azure.core.exceptions.HttpResponseError: @@ -175,7 +177,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -186,18 +188,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -209,13 +209,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("NetworkCollection", pipeline_response) @@ -225,11 +224,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -241,10 +240,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks" - } - @distributed_trace def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _models.Network: """Gets a network with specified server id and network name. @@ -255,12 +250,11 @@ def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _models.Net :type fabric_name: str :param network_name: Primary network name. Required. :type network_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Network or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Network :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -274,23 +268,21 @@ def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _models.Net api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Network] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, network_name=network_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -299,16 +291,12 @@ def get(self, fabric_name: str, network_name: str, **kwargs: Any) -> _models.Net map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Network", pipeline_response) + deserialized = self._deserialize("Network", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationNetworks/{networkName}" - } + return deserialized # type: ignore @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.Network"]: @@ -316,7 +304,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.Network"]: Lists the networks available in a vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Network or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Network] :raises ~azure.core.exceptions.HttpResponseError: @@ -327,7 +314,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.Network"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.NetworkCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -338,17 +325,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.Network"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -360,13 +345,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("NetworkCollection", pipeline_response) @@ -376,11 +360,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -391,7 +375,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationNetworks" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_policies_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_policies_operations.py index 4cf95c3c3d7b..7e2aae2ed21d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_policies_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_policies_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,22 +43,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -71,22 +74,22 @@ def build_list_request( def build_get_request( - policy_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + policy_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "policyName": _SERIALIZER.url("policy_name", policy_name, "str"), } @@ -103,12 +106,12 @@ def build_get_request( def build_create_request( - policy_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + policy_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -116,10 +119,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "policyName": _SERIALIZER.url("policy_name", policy_name, "str"), } @@ -138,19 +141,19 @@ def build_create_request( def build_delete_request( - policy_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + policy_name: str, resource_group_name: str, resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "policyName": _SERIALIZER.url("policy_name", policy_name, "str"), } @@ -164,12 +167,12 @@ def build_delete_request( def build_update_request( - policy_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + policy_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -177,10 +180,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "policyName": _SERIALIZER.url("policy_name", policy_name, "str"), } @@ -212,10 +215,12 @@ class ReplicationPoliciesOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> Iterable["_models.Policy"]: @@ -223,7 +228,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.Policy"]: Lists the replication policies for a vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either Policy or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -234,7 +238,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.Policy"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.PolicyCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -245,17 +249,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.Policy"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -267,13 +269,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("PolicyCollection", pipeline_response) @@ -283,11 +284,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -299,10 +300,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies" - } - @distributed_trace def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: """Gets the requested policy. @@ -311,12 +308,11 @@ def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: :param policy_name: Replication policy name. Required. :type policy_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: Policy or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.Policy :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -330,22 +326,20 @@ def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.Policy] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -354,21 +348,17 @@ def get(self, policy_name: str, **kwargs: Any) -> _models.Policy: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = self._deserialize("Policy", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore def _create_initial( - self, policy_name: str, input: Union[_models.CreatePolicyInput, IO], **kwargs: Any - ) -> Optional[_models.Policy]: - error_map = { + self, policy_name: str, input: Union[_models.CreatePolicyInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -381,7 +371,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Policy]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -391,45 +381,42 @@ def _create_initial( else: _json = self._serialize.body(input, "CreatePolicyInput") - request = build_create_request( + _request = build_create_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -451,14 +438,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Policy or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -466,7 +445,7 @@ def begin_create( @overload def begin_create( - self, policy_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, policy_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.Policy]: """Creates the policy. @@ -475,18 +454,10 @@ def begin_create( :param policy_name: Replication policy name. Required. :type policy_name: str :param input: Create policy input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Policy or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -494,7 +465,7 @@ def begin_create( @distributed_trace def begin_create( - self, policy_name: str, input: Union[_models.CreatePolicyInput, IO], **kwargs: Any + self, policy_name: str, input: Union[_models.CreatePolicyInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Policy]: """Creates the policy. @@ -502,19 +473,9 @@ def begin_create( :param policy_name: Replication policy name. Required. :type policy_name: str - :param input: Create policy input. Is either a CreatePolicyInput type or a IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreatePolicyInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Create policy input. Is either a CreatePolicyInput type or a IO[bytes] type. + Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreatePolicyInput or IO[bytes] :return: An instance of LROPoller that returns either Policy or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -539,12 +500,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = self._deserialize("Policy", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -554,22 +516,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Policy].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return LROPoller[_models.Policy]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, policy_name: str, **kwargs: Any - ) -> None: - error_map = { + def _delete_initial(self, policy_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -581,38 +539,41 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore @distributed_trace def begin_delete(self, policy_name: str, **kwargs: Any) -> LROPoller[None]: @@ -622,14 +583,6 @@ def begin_delete(self, policy_name: str, **kwargs: Any) -> LROPoller[None]: :param policy_name: Replication policy name. Required. :type policy_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -643,7 +596,7 @@ def begin_delete(self, policy_name: str, **kwargs: Any) -> LROPoller[None]: 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( # type: ignore + raw_result = self._delete_initial( policy_name=policy_name, api_version=api_version, cls=lambda x, y, z: x, @@ -651,11 +604,12 @@ def begin_delete(self, policy_name: str, **kwargs: Any) -> LROPoller[None]: params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -664,22 +618,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( - self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO], **kwargs: Any - ) -> Optional[_models.Policy]: - error_map = { + self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -692,7 +642,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.Policy]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -702,45 +652,42 @@ def _update_initial( else: _json = self._serialize.body(input, "UpdatePolicyInput") - request = build_update_request( + _request = build_update_request( policy_name=policy_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -762,14 +709,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Policy or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -777,7 +716,7 @@ def begin_update( @overload def begin_update( - self, policy_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, policy_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.Policy]: """Updates the policy. @@ -786,18 +725,10 @@ def begin_update( :param policy_name: Policy Id. Required. :type policy_name: str :param input: Update Policy Input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either Policy or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -805,7 +736,7 @@ def begin_update( @distributed_trace def begin_update( - self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO], **kwargs: Any + self, policy_name: str, input: Union[_models.UpdatePolicyInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.Policy]: """Updates the policy. @@ -813,19 +744,9 @@ def begin_update( :param policy_name: Policy Id. Required. :type policy_name: str - :param input: Update Policy Input. Is either a UpdatePolicyInput type or a IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdatePolicyInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update Policy Input. Is either a UpdatePolicyInput type or a IO[bytes] type. + Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdatePolicyInput or IO[bytes] :return: An instance of LROPoller that returns either Policy or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.Policy] :raises ~azure.core.exceptions.HttpResponseError: @@ -850,12 +771,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("Policy", pipeline_response) + deserialized = self._deserialize("Policy", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -865,14 +787,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.Policy].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationPolicies/{policyName}" - } + return LROPoller[_models.Policy]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protectable_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protectable_items_operations.py index 651512eced2a..a90e77fa7f49 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protectable_items_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protectable_items_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,11 +37,11 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_protection_containers_request( +def build_list_by_replication_protection_containers_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, filter: Optional[str] = None, @@ -51,17 +52,17 @@ def build_list_by_replication_protection_containers_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectableItems", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -88,25 +89,25 @@ def build_get_request( fabric_name: str, protection_container_name: str, protectable_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectableItems/{protectableItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -138,13 +139,15 @@ class ReplicationProtectableItemsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, @@ -167,7 +170,6 @@ def list_by_replication_protection_containers( :type take: str :param skip_token: skipToken OData query parameter. Default value is None. :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectableItem or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ProtectableItem] @@ -179,7 +181,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectableItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -190,22 +192,20 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, filter=filter, take=take, skip_token=skip_token, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -217,13 +217,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ProtectableItemCollection", pipeline_response) @@ -233,11 +232,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -249,10 +248,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectableItems" - } - @distributed_trace def get( self, fabric_name: str, protection_container_name: str, protectable_item_name: str, **kwargs: Any @@ -267,12 +262,11 @@ def get( :type protection_container_name: str :param protectable_item_name: Protectable item name. Required. :type protectable_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ProtectableItem or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ProtectableItem :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -286,24 +280,22 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectableItem] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, protectable_item_name=protectable_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -312,13 +304,9 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ProtectableItem", pipeline_response) + deserialized = self._deserialize("ProtectableItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectableItems/{protectableItemName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protected_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protected_items_operations.py index a4963e1ddcab..2f3ccd1af12b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protected_items_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protected_items_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,28 +42,28 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_protection_containers_request( +def build_list_by_replication_protection_containers_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -81,25 +84,25 @@ def build_get_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -123,15 +126,15 @@ def build_create_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -139,10 +142,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -168,22 +171,22 @@ def build_purge_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -204,15 +207,15 @@ def build_update_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -220,10 +223,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -249,15 +252,15 @@ def build_add_disks_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -265,10 +268,10 @@ def build_add_disks_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/addDisks", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -294,15 +297,15 @@ def build_apply_recovery_point_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -310,10 +313,10 @@ def build_apply_recovery_point_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/applyRecoveryPoint", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -339,25 +342,25 @@ def build_failover_cancel_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCancel", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -381,25 +384,25 @@ def build_failover_commit_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCommit", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -423,15 +426,15 @@ def build_planned_failover_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -439,10 +442,10 @@ def build_planned_failover_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/plannedFailover", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -468,24 +471,24 @@ def build_delete_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/remove", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -510,15 +513,15 @@ def build_remove_disks_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -526,10 +529,10 @@ def build_remove_disks_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/removeDisks", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -555,25 +558,25 @@ def build_repair_replication_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/repairReplication", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -597,15 +600,15 @@ def build_reprotect_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -613,10 +616,10 @@ def build_reprotect_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/reProtect", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -642,15 +645,15 @@ def build_resolve_health_errors_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -658,10 +661,10 @@ def build_resolve_health_errors_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/resolveHealthErrors", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -687,15 +690,15 @@ def build_switch_provider_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -703,10 +706,10 @@ def build_switch_provider_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/switchProvider", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -732,15 +735,15 @@ def build_test_failover_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -748,10 +751,10 @@ def build_test_failover_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailover", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -777,15 +780,15 @@ def build_test_failover_cleanup_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -793,10 +796,10 @@ def build_test_failover_cleanup_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailoverCleanup", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -822,15 +825,15 @@ def build_unplanned_failover_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -838,10 +841,10 @@ def build_unplanned_failover_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/unplannedFailover", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -867,15 +870,15 @@ def build_update_appliance_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -883,10 +886,10 @@ def build_update_appliance_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateAppliance", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -912,15 +915,15 @@ def build_update_mobility_service_request( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -928,10 +931,10 @@ def build_update_mobility_service_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateMobilityService", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -954,8 +957,8 @@ def build_update_mobility_service_request( def build_list_request( - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, skip_token: Optional[str] = None, @@ -965,17 +968,17 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectedItems", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -1008,13 +1011,15 @@ class ReplicationProtectedItemsOperations: # pylint: disable=too-many-public-me def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, **kwargs: Any ) -> Iterable["_models.ReplicationProtectedItem"]: """Gets the list of Replication protected items. @@ -1025,7 +1030,6 @@ def list_by_replication_protection_containers( :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1038,7 +1042,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectedItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1049,19 +1053,17 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1073,13 +1075,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ReplicationProtectedItemCollection", pipeline_response) @@ -1089,11 +1090,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1105,10 +1106,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems" - } - @distributed_trace def get( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any @@ -1123,12 +1120,11 @@ def get( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectedItem or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectedItem :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1142,24 +1138,22 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectedItem] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1168,26 +1162,22 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - input: Union[_models.EnableProtectionInput, IO], + input: Union[_models.EnableProtectionInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1200,7 +1190,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1210,47 +1200,44 @@ def _create_initial( else: _json = self._serialize.body(input, "EnableProtectionInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -1278,14 +1265,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1299,7 +1278,7 @@ def begin_create( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - input: IO, + input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1315,18 +1294,10 @@ def begin_create( :param replicated_protected_item_name: A name for the replication protected item. Required. :type replicated_protected_item_name: str :param input: Enable Protection Input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1340,7 +1311,7 @@ def begin_create( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - input: Union[_models.EnableProtectionInput, IO], + input: Union[_models.EnableProtectionInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Enables protection. @@ -1353,20 +1324,9 @@ def begin_create( :type protection_container_name: str :param replicated_protected_item_name: A name for the replication protected item. Required. :type replicated_protected_item_name: str - :param input: Enable Protection Input. Is either a EnableProtectionInput type or a IO type. - Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableProtectionInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Enable Protection Input. Is either a EnableProtectionInput type or a IO[bytes] + type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.EnableProtectionInput or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1395,12 +1355,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1410,22 +1371,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _purge_initial( # pylint: disable=inconsistent-return-statements + def _purge_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1437,40 +1396,43 @@ def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore @distributed_trace def begin_purge( @@ -1488,14 +1450,6 @@ def begin_purge( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1509,7 +1463,7 @@ def begin_purge( 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._purge_initial( # type: ignore + raw_result = self._purge_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, @@ -1519,11 +1473,12 @@ def begin_purge( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1532,27 +1487,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO], + update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1565,7 +1516,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1575,47 +1526,44 @@ def _update_initial( else: _json = self._serialize.body(update_protection_input, "UpdateReplicationProtectedItemInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -1644,14 +1592,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1665,7 +1605,7 @@ def begin_update( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_protection_input: IO, + update_protection_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1681,18 +1621,10 @@ def begin_update( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param update_protection_input: Update protection input. Required. - :type update_protection_input: IO + :type update_protection_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1706,7 +1638,7 @@ def begin_update( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO], + update_protection_input: Union[_models.UpdateReplicationProtectedItemInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Updates the replication protected item settings. @@ -1720,20 +1652,10 @@ def begin_update( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param update_protection_input: Update protection input. Is either a - UpdateReplicationProtectedItemInput type or a IO type. Required. + UpdateReplicationProtectedItemInput type or a IO[bytes] type. Required. :type update_protection_input: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateReplicationProtectedItemInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateReplicationProtectedItemInput or + IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1762,12 +1684,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1777,27 +1700,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _add_disks_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - add_disks_input: Union[_models.AddDisksInput, IO], + add_disks_input: Union[_models.AddDisksInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1810,7 +1731,7 @@ def _add_disks_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1820,47 +1741,44 @@ def _add_disks_initial( else: _json = self._serialize.body(add_disks_input, "AddDisksInput") - request = build_add_disks_request( + _request = build_add_disks_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._add_disks_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _add_disks_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/addDisks" - } + return deserialized # type: ignore @overload def begin_add_disks( @@ -1888,14 +1806,6 @@ def begin_add_disks( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1909,7 +1819,7 @@ def begin_add_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - add_disks_input: IO, + add_disks_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1925,18 +1835,10 @@ def begin_add_disks( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param add_disks_input: Add disks input. Required. - :type add_disks_input: IO + :type add_disks_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -1950,7 +1852,7 @@ def begin_add_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - add_disks_input: Union[_models.AddDisksInput, IO], + add_disks_input: Union[_models.AddDisksInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Add disk(s) for protection. @@ -1963,19 +1865,10 @@ def begin_add_disks( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param add_disks_input: Add disks input. Is either a AddDisksInput type or a IO type. Required. - :type add_disks_input: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param add_disks_input: Add disks input. Is either a AddDisksInput type or a IO[bytes] type. + Required. + :type add_disks_input: ~azure.mgmt.recoveryservicessiterecovery.models.AddDisksInput or + IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2004,12 +1897,13 @@ def begin_add_disks( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2019,27 +1913,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_add_disks.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/addDisks" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _apply_recovery_point_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO], + apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2052,7 +1944,7 @@ def _apply_recovery_point_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2062,47 +1954,44 @@ def _apply_recovery_point_initial( else: _json = self._serialize.body(apply_recovery_point_input, "ApplyRecoveryPointInput") - request = build_apply_recovery_point_request( + _request = build_apply_recovery_point_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._apply_recovery_point_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _apply_recovery_point_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/applyRecoveryPoint" - } + return deserialized # type: ignore @overload def begin_apply_recovery_point( @@ -2131,14 +2020,6 @@ def begin_apply_recovery_point( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2152,7 +2033,7 @@ def begin_apply_recovery_point( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - apply_recovery_point_input: IO, + apply_recovery_point_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2168,18 +2049,10 @@ def begin_apply_recovery_point( :param replicated_protected_item_name: The replicated protected item name. Required. :type replicated_protected_item_name: str :param apply_recovery_point_input: The ApplyRecoveryPointInput. Required. - :type apply_recovery_point_input: IO + :type apply_recovery_point_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2193,7 +2066,7 @@ def begin_apply_recovery_point( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO], + apply_recovery_point_input: Union[_models.ApplyRecoveryPointInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Change or apply recovery point. @@ -2207,20 +2080,9 @@ def begin_apply_recovery_point( :param replicated_protected_item_name: The replicated protected item name. Required. :type replicated_protected_item_name: str :param apply_recovery_point_input: The ApplyRecoveryPointInput. Is either a - ApplyRecoveryPointInput type or a IO type. Required. + ApplyRecoveryPointInput type or a IO[bytes] type. Required. :type apply_recovery_point_input: - ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyRecoveryPointInput or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2249,12 +2111,13 @@ def begin_apply_recovery_point( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2264,22 +2127,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_apply_recovery_point.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/applyRecoveryPoint" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _failover_cancel_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2291,46 +2152,43 @@ def _failover_cancel_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_cancel_request( + _request = build_failover_cancel_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_cancel_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _failover_cancel_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCancel" - } + return deserialized # type: ignore @distributed_trace def begin_failover_cancel( @@ -2346,14 +2204,6 @@ def begin_failover_cancel( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2379,12 +2229,13 @@ def begin_failover_cancel( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2394,22 +2245,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_cancel.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCancel" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _failover_commit_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2421,46 +2270,43 @@ def _failover_commit_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_commit_request( + _request = build_failover_commit_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_commit_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _failover_commit_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCommit" - } + return deserialized # type: ignore @distributed_trace def begin_failover_commit( @@ -2476,14 +2322,6 @@ def begin_failover_commit( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2509,12 +2347,13 @@ def begin_failover_commit( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2524,27 +2363,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_commit.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/failoverCommit" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _planned_failover_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.PlannedFailoverInput, IO], + failover_input: Union[_models.PlannedFailoverInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2557,7 +2394,7 @@ def _planned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2567,47 +2404,44 @@ def _planned_failover_initial( else: _json = self._serialize.body(failover_input, "PlannedFailoverInput") - request = build_planned_failover_request( + _request = build_planned_failover_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._planned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _planned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/plannedFailover" - } + return deserialized # type: ignore @overload def begin_planned_failover( @@ -2635,14 +2469,6 @@ def begin_planned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2656,7 +2482,7 @@ def begin_planned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: IO, + failover_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2672,18 +2498,10 @@ def begin_planned_failover( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param failover_input: Planned failover input. Required. - :type failover_input: IO + :type failover_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2697,7 +2515,7 @@ def begin_planned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.PlannedFailoverInput, IO], + failover_input: Union[_models.PlannedFailoverInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Execute planned failover. @@ -2710,21 +2528,10 @@ def begin_planned_failover( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param failover_input: Planned failover input. Is either a PlannedFailoverInput type or a IO - type. Required. + :param failover_input: Planned failover input. Is either a PlannedFailoverInput type or a + IO[bytes] type. Required. :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.PlannedFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -2753,12 +2560,13 @@ def begin_planned_failover( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2768,27 +2576,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_planned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/plannedFailover" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements + def _delete_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - disable_protection_input: Union[_models.DisableProtectionInput, IO], + disable_protection_input: Union[_models.DisableProtectionInput, IO[bytes]], **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2801,7 +2607,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2811,41 +2617,44 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements else: _json = self._serialize.body(disable_protection_input, "DisableProtectionInput") - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/remove" - } + return deserialized # type: ignore @overload def begin_delete( @@ -2875,14 +2684,6 @@ def begin_delete( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -2894,7 +2695,7 @@ def begin_delete( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - disable_protection_input: IO, + disable_protection_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -2911,18 +2712,10 @@ def begin_delete( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param disable_protection_input: Disable protection input. Required. - :type disable_protection_input: IO + :type disable_protection_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -2934,7 +2727,7 @@ def begin_delete( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - disable_protection_input: Union[_models.DisableProtectionInput, IO], + disable_protection_input: Union[_models.DisableProtectionInput, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: """Disables protection. @@ -2949,20 +2742,9 @@ def begin_delete( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param disable_protection_input: Disable protection input. Is either a DisableProtectionInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type disable_protection_input: - ~azure.mgmt.recoveryservicessiterecovery.models.DisableProtectionInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.DisableProtectionInput or IO[bytes] :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -2977,7 +2759,7 @@ def begin_delete( 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, @@ -2989,11 +2771,12 @@ def begin_delete( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -3002,27 +2785,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/remove" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _remove_disks_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - remove_disks_input: Union[_models.RemoveDisksInput, IO], + remove_disks_input: Union[_models.RemoveDisksInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3035,7 +2814,7 @@ def _remove_disks_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3045,47 +2824,44 @@ def _remove_disks_initial( else: _json = self._serialize.body(remove_disks_input, "RemoveDisksInput") - request = build_remove_disks_request( + _request = build_remove_disks_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._remove_disks_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _remove_disks_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/removeDisks" - } + return deserialized # type: ignore @overload def begin_remove_disks( @@ -3113,14 +2889,6 @@ def begin_remove_disks( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3134,7 +2902,7 @@ def begin_remove_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - remove_disks_input: IO, + remove_disks_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -3150,18 +2918,10 @@ def begin_remove_disks( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param remove_disks_input: Remove disks input. Required. - :type remove_disks_input: IO + :type remove_disks_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3175,7 +2935,7 @@ def begin_remove_disks( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - remove_disks_input: Union[_models.RemoveDisksInput, IO], + remove_disks_input: Union[_models.RemoveDisksInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Removes disk(s). @@ -3188,21 +2948,10 @@ def begin_remove_disks( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param remove_disks_input: Remove disks input. Is either a RemoveDisksInput type or a IO type. - Required. + :param remove_disks_input: Remove disks input. Is either a RemoveDisksInput type or a IO[bytes] + type. Required. :type remove_disks_input: ~azure.mgmt.recoveryservicessiterecovery.models.RemoveDisksInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3231,12 +2980,13 @@ def begin_remove_disks( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3246,22 +2996,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_remove_disks.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/removeDisks" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _repair_replication_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3273,46 +3021,43 @@ def _repair_replication_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_repair_replication_request( + _request = build_repair_replication_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._repair_replication_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _repair_replication_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/repairReplication" - } + return deserialized # type: ignore @distributed_trace def begin_repair_replication( @@ -3329,14 +3074,6 @@ def begin_repair_replication( :type protection_container_name: str :param replicated_protected_item_name: The name of the replication protected item. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3362,12 +3099,13 @@ def begin_repair_replication( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3377,27 +3115,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_repair_replication.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/repairReplication" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _reprotect_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - reprotect_input: Union[_models.ReverseReplicationInput, IO], + reprotect_input: Union[_models.ReverseReplicationInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3410,7 +3146,7 @@ def _reprotect_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3420,47 +3156,44 @@ def _reprotect_initial( else: _json = self._serialize.body(reprotect_input, "ReverseReplicationInput") - request = build_reprotect_request( + _request = build_reprotect_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._reprotect_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _reprotect_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/reProtect" - } + return deserialized # type: ignore @overload def begin_reprotect( @@ -3473,7 +3206,7 @@ def begin_reprotect( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: - """Execute Reverse Replication\Reprotect. + """Execute Reverse Replication\\Reprotect. Operation to reprotect or reverse replicate a failed over replication protected item. @@ -3488,14 +3221,6 @@ def begin_reprotect( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3509,12 +3234,12 @@ def begin_reprotect( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - reprotect_input: IO, + reprotect_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: - """Execute Reverse Replication\Reprotect. + """Execute Reverse Replication\\Reprotect. Operation to reprotect or reverse replicate a failed over replication protected item. @@ -3525,18 +3250,10 @@ def begin_reprotect( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param reprotect_input: Reverse replication input. Required. - :type reprotect_input: IO + :type reprotect_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3550,10 +3267,10 @@ def begin_reprotect( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - reprotect_input: Union[_models.ReverseReplicationInput, IO], + reprotect_input: Union[_models.ReverseReplicationInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: - """Execute Reverse Replication\Reprotect. + """Execute Reverse Replication\\Reprotect. Operation to reprotect or reverse replicate a failed over replication protected item. @@ -3564,20 +3281,9 @@ def begin_reprotect( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param reprotect_input: Reverse replication input. Is either a ReverseReplicationInput type or - a IO type. Required. + a IO[bytes] type. Required. :type reprotect_input: ~azure.mgmt.recoveryservicessiterecovery.models.ReverseReplicationInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3606,12 +3312,13 @@ def begin_reprotect( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3621,27 +3328,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_reprotect.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/reProtect" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _resolve_health_errors_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resolve_health_input: Union[_models.ResolveHealthInput, IO], + resolve_health_input: Union[_models.ResolveHealthInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3654,7 +3359,7 @@ def _resolve_health_errors_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3664,47 +3369,44 @@ def _resolve_health_errors_initial( else: _json = self._serialize.body(resolve_health_input, "ResolveHealthInput") - request = build_resolve_health_errors_request( + _request = build_resolve_health_errors_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._resolve_health_errors_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _resolve_health_errors_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/resolveHealthErrors" - } + return deserialized # type: ignore @overload def begin_resolve_health_errors( @@ -3732,14 +3434,6 @@ def begin_resolve_health_errors( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3753,7 +3447,7 @@ def begin_resolve_health_errors( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resolve_health_input: IO, + resolve_health_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -3769,18 +3463,10 @@ def begin_resolve_health_errors( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param resolve_health_input: Health issue input object. Required. - :type resolve_health_input: IO + :type resolve_health_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3794,7 +3480,7 @@ def begin_resolve_health_errors( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resolve_health_input: Union[_models.ResolveHealthInput, IO], + resolve_health_input: Union[_models.ResolveHealthInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Resolve health errors. @@ -3808,20 +3494,9 @@ def begin_resolve_health_errors( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param resolve_health_input: Health issue input object. Is either a ResolveHealthInput type or - a IO type. Required. + a IO[bytes] type. Required. :type resolve_health_input: ~azure.mgmt.recoveryservicessiterecovery.models.ResolveHealthInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3850,12 +3525,13 @@ def begin_resolve_health_errors( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -3865,27 +3541,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_resolve_health_errors.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/resolveHealthErrors" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _switch_provider_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - switch_provider_input: Union[_models.SwitchProviderInput, IO], + switch_provider_input: Union[_models.SwitchProviderInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -3898,7 +3572,7 @@ def _switch_provider_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -3908,47 +3582,44 @@ def _switch_provider_initial( else: _json = self._serialize.body(switch_provider_input, "SwitchProviderInput") - request = build_switch_provider_request( + _request = build_switch_provider_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._switch_provider_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _switch_provider_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/switchProvider" - } + return deserialized # type: ignore @overload def begin_switch_provider( @@ -3977,14 +3648,6 @@ def begin_switch_provider( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -3998,7 +3661,7 @@ def begin_switch_provider( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - switch_provider_input: IO, + switch_provider_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4014,18 +3677,10 @@ def begin_switch_provider( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param switch_provider_input: Switch provider input. Required. - :type switch_provider_input: IO + :type switch_provider_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4039,7 +3694,7 @@ def begin_switch_provider( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - switch_provider_input: Union[_models.SwitchProviderInput, IO], + switch_provider_input: Union[_models.SwitchProviderInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Execute switch provider. @@ -4053,20 +3708,9 @@ def begin_switch_provider( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param switch_provider_input: Switch provider input. Is either a SwitchProviderInput type or a - IO type. Required. + IO[bytes] type. Required. :type switch_provider_input: - ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProviderInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProviderInput or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4095,12 +3739,13 @@ def begin_switch_provider( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -4112,27 +3757,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_switch_provider.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/switchProvider" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _test_failover_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - testfailover_input: Union[_models.TestFailoverInput, IO], + testfailover_input: Union[_models.TestFailoverInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -4145,7 +3788,7 @@ def _test_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -4155,47 +3798,44 @@ def _test_failover_initial( else: _json = self._serialize.body(testfailover_input, "TestFailoverInput") - request = build_test_failover_request( + _request = build_test_failover_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _test_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailover" - } + return deserialized # type: ignore @overload def begin_test_failover( @@ -4223,14 +3863,6 @@ def begin_test_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4244,7 +3876,7 @@ def begin_test_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - testfailover_input: IO, + testfailover_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4260,18 +3892,10 @@ def begin_test_failover( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param testfailover_input: Test failover input. Required. - :type testfailover_input: IO + :type testfailover_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4285,7 +3909,7 @@ def begin_test_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - testfailover_input: Union[_models.TestFailoverInput, IO], + testfailover_input: Union[_models.TestFailoverInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Execute test failover. @@ -4298,21 +3922,10 @@ def begin_test_failover( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param testfailover_input: Test failover input. Is either a TestFailoverInput type or a IO - type. Required. + :param testfailover_input: Test failover input. Is either a TestFailoverInput type or a + IO[bytes] type. Required. :type testfailover_input: ~azure.mgmt.recoveryservicessiterecovery.models.TestFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4341,12 +3954,13 @@ def begin_test_failover( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -4356,27 +3970,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailover" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _test_failover_cleanup_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - cleanup_input: Union[_models.TestFailoverCleanupInput, IO], + cleanup_input: Union[_models.TestFailoverCleanupInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -4389,7 +4001,7 @@ def _test_failover_cleanup_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -4399,47 +4011,44 @@ def _test_failover_cleanup_initial( else: _json = self._serialize.body(cleanup_input, "TestFailoverCleanupInput") - request = build_test_failover_cleanup_request( + _request = build_test_failover_cleanup_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_cleanup_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_failover_cleanup_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailoverCleanup" - } + return deserialized # type: ignore @overload def begin_test_failover_cleanup( @@ -4467,14 +4076,6 @@ def begin_test_failover_cleanup( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4488,7 +4089,7 @@ def begin_test_failover_cleanup( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - cleanup_input: IO, + cleanup_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4504,18 +4105,10 @@ def begin_test_failover_cleanup( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param cleanup_input: Test failover cleanup input. Required. - :type cleanup_input: IO + :type cleanup_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4529,7 +4122,7 @@ def begin_test_failover_cleanup( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - cleanup_input: Union[_models.TestFailoverCleanupInput, IO], + cleanup_input: Union[_models.TestFailoverCleanupInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Execute test failover cleanup. @@ -4543,20 +4136,9 @@ def begin_test_failover_cleanup( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param cleanup_input: Test failover cleanup input. Is either a TestFailoverCleanupInput type or - a IO type. Required. + a IO[bytes] type. Required. :type cleanup_input: ~azure.mgmt.recoveryservicessiterecovery.models.TestFailoverCleanupInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4585,12 +4167,13 @@ def begin_test_failover_cleanup( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -4600,27 +4183,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover_cleanup.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/testFailoverCleanup" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _unplanned_failover_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.UnplannedFailoverInput, IO], + failover_input: Union[_models.UnplannedFailoverInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -4633,7 +4214,7 @@ def _unplanned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -4643,47 +4224,44 @@ def _unplanned_failover_initial( else: _json = self._serialize.body(failover_input, "UnplannedFailoverInput") - request = build_unplanned_failover_request( + _request = build_unplanned_failover_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._unplanned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _unplanned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/unplannedFailover" - } + return deserialized # type: ignore @overload def begin_unplanned_failover( @@ -4711,14 +4289,6 @@ def begin_unplanned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4732,7 +4302,7 @@ def begin_unplanned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: IO, + failover_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4748,18 +4318,10 @@ def begin_unplanned_failover( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param failover_input: Failover input. Required. - :type failover_input: IO + :type failover_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4773,7 +4335,7 @@ def begin_unplanned_failover( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - failover_input: Union[_models.UnplannedFailoverInput, IO], + failover_input: Union[_models.UnplannedFailoverInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Execute unplanned failover. @@ -4786,21 +4348,10 @@ def begin_unplanned_failover( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :param failover_input: Failover input. Is either a UnplannedFailoverInput type or a IO type. - Required. + :param failover_input: Failover input. Is either a UnplannedFailoverInput type or a IO[bytes] + type. Required. :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.UnplannedFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4829,12 +4380,13 @@ def begin_unplanned_failover( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -4844,27 +4396,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_unplanned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/unplannedFailover" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _update_appliance_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO], + appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -4877,7 +4427,7 @@ def _update_appliance_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -4887,47 +4437,44 @@ def _update_appliance_initial( else: _json = self._serialize.body(appliance_update_input, "UpdateApplianceForReplicationProtectedItemInput") - request = build_update_appliance_request( + _request = build_update_appliance_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_appliance_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_appliance_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateAppliance" - } + return deserialized # type: ignore @overload def begin_update_appliance( @@ -4956,14 +4503,6 @@ def begin_update_appliance( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -4977,7 +4516,7 @@ def begin_update_appliance( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - appliance_update_input: IO, + appliance_update_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -4993,18 +4532,10 @@ def begin_update_appliance( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param appliance_update_input: Appliance update protection input. Required. - :type appliance_update_input: IO + :type appliance_update_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -5018,7 +4549,7 @@ def begin_update_appliance( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO], + appliance_update_input: Union[_models.UpdateApplianceForReplicationProtectedItemInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Updates appliance for replication protected Item. @@ -5032,21 +4563,10 @@ def begin_update_appliance( :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str :param appliance_update_input: Appliance update protection input. Is either a - UpdateApplianceForReplicationProtectedItemInput type or a IO type. Required. + UpdateApplianceForReplicationProtectedItemInput type or a IO[bytes] type. Required. :type appliance_update_input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateApplianceForReplicationProtectedItemInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -5075,12 +4595,13 @@ def begin_update_appliance( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -5090,27 +4611,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update_appliance.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateAppliance" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _update_mobility_service_initial( self, fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO], + update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ReplicationProtectedItem]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -5123,7 +4642,7 @@ def _update_mobility_service_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ReplicationProtectedItem]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -5133,51 +4652,48 @@ def _update_mobility_service_initial( else: _json = self._serialize.body(update_mobility_service_request, "UpdateMobilityServiceRequest") - request = build_update_mobility_service_request( + _request = build_update_mobility_service_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_mobility_service_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None response_headers = {} - if response.status_code == 200: - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) - if response.status_code == 202: response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - if cls: - return cls(pipeline_response, deserialized, response_headers) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) - return deserialized + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore - _update_mobility_service_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateMobilityService" - } + return deserialized # type: ignore @overload def begin_update_mobility_service( @@ -5210,14 +4726,6 @@ def begin_update_mobility_service( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -5231,7 +4739,7 @@ def begin_update_mobility_service( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_mobility_service_request: IO, + update_mobility_service_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -5251,18 +4759,10 @@ def begin_update_mobility_service( :type replicated_protected_item_name: str :param update_mobility_service_request: Request to update the mobility service on the protected item. Required. - :type update_mobility_service_request: IO + :type update_mobility_service_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -5276,7 +4776,7 @@ def begin_update_mobility_service( fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO], + update_mobility_service_request: Union[_models.UpdateMobilityServiceRequest, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ReplicationProtectedItem]: """Update the mobility service on a protected item. @@ -5293,20 +4793,9 @@ def begin_update_mobility_service( be updated. Required. :type replicated_protected_item_name: str :param update_mobility_service_request: Request to update the mobility service on the protected - item. Is either a UpdateMobilityServiceRequest type or a IO type. Required. + item. Is either a UpdateMobilityServiceRequest type or a IO[bytes] type. Required. :type update_mobility_service_request: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMobilityServiceRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateMobilityServiceRequest or IO[bytes] :return: An instance of LROPoller that returns either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -5335,12 +4824,13 @@ def begin_update_mobility_service( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response) + deserialized = self._deserialize("ReplicationProtectedItem", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -5352,17 +4842,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ReplicationProtectedItem].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update_mobility_service.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/updateMobilityService" - } + return LROPoller[_models.ReplicationProtectedItem]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list( @@ -5377,7 +4865,6 @@ def list( :type skip_token: str :param filter: OData filter options. Default value is None. :type filter: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationProtectedItem or the result of cls(response) :rtype: @@ -5390,7 +4877,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectedItemCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -5401,19 +4888,17 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, filter=filter, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -5425,13 +4910,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ReplicationProtectedItemCollection", pipeline_response) @@ -5441,11 +4925,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -5456,7 +4940,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectedItems" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_clusters_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_clusters_operations.py new file mode 100644 index 000000000000..1440738327b8 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_clusters_operations.py @@ -0,0 +1,2611 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from io import IOBase +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload +import urllib.parse + +from azure.core import PipelineClient +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, + map_error, +) +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.core.rest import HttpRequest, HttpResponse +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models as _models +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_list_by_replication_protection_containers_request( # pylint: disable=name-too-long + resource_name: str, + fabric_name: str, + protection_container_name: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_get_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_create_request( + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_name: str, + resource_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", "2025-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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="PUT", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_purge_request( + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_name: str, + resource_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_apply_recovery_point_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/applyRecoveryPoint", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_failover_commit_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/failoverCommit", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_get_operation_results_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + job_id: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/operationResults/{jobId}", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "jobId": _SERIALIZER.url("job_id", job_id, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$"), + } + + _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="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_repair_replication_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/repairReplication", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_test_failover_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/testFailover", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_test_failover_cleanup_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/testFailoverCleanup", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_unplanned_failover_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + resource_group_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", "2025-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionClusters/{replicationProtectionClusterName}/unplannedFailover", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + "replicationProtectionClusterName": _SERIALIZER.url( + "replication_protection_cluster_name", + replication_protection_cluster_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_list_request( + resource_name: str, + resource_group_name: str, + subscription_id: str, + *, + skip_token: Optional[str] = None, + filter: Optional[str] = None, + **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", "2025-02-01")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionClusters", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if skip_token is not None: + _params["skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") + if filter is not None: + _params["$filter"] = _SERIALIZER.query("filter", filter, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +class ReplicationProtectionClustersOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.recoveryservicessiterecovery.SiteRecoveryManagementClient`'s + :attr:`replication_protection_clusters` attribute. + """ + + models = _models + + def __init__(self, *args, **kwargs): + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( # pylint: disable=name-too-long + self, resource_name: str, fabric_name: str, protection_container_name: str, **kwargs: Any + ) -> Iterable["_models.ReplicationProtectionCluster"]: + """Gets the list of Replication protection clusters in fabric, container. + + Gets the list of ASR replication protected clusters in the protection container. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :return: An iterator like instance of either ReplicationProtectionCluster or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionClusterCollection] = 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_list_by_replication_protection_containers_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + 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 + ) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("ReplicationProtectionClusterCollection", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @distributed_trace + def get( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> _models.ReplicationProtectionCluster: + """Gets the details of a Replication protection cluster. + + Gets the details of an ASR replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: ReplicationProtectionCluster or the result of cls(response) + :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster + :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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + def _create_initial( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: Union[_models.ReplicationProtectionCluster, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(replication_protection_cluster, (IOBase, bytes)): + _content = replication_protection_cluster + else: + _json = self._serialize.body(replication_protection_cluster, "ReplicationProtectionCluster") + + _request = build_create_request( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_create( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: _models.ReplicationProtectionCluster, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Create Replication protection Cluster. + + The operation to create an ASR replication protection cluster item. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param replication_protection_cluster: Create replication protection cluster Input. Required. + :type replication_protection_cluster: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_create( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Create Replication protection Cluster. + + The operation to create an ASR replication protection cluster item. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param replication_protection_cluster: Create replication protection cluster Input. Required. + :type replication_protection_cluster: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_create( + self, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + replication_protection_cluster: Union[_models.ReplicationProtectionCluster, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Create Replication protection Cluster. + + The operation to create an ASR replication protection cluster item. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param replication_protection_cluster: Create replication protection cluster Input. Is either a + ReplicationProtectionCluster type or a IO[bytes] type. Required. + :type replication_protection_cluster: + ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster or IO[bytes] + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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_initial( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + replication_protection_cluster=replication_protection_cluster, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _purge_initial( + self, fabric_name: str, protection_container_name: str, replication_protection_cluster_name: str, **kwargs: Any + ) -> Iterator[bytes]: + 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) + + _request = build_purge_request( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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, 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + def begin_purge( + self, fabric_name: str, protection_container_name: str, replication_protection_cluster_name: str, **kwargs: Any + ) -> LROPoller[None]: + """Purge the replication protection cluster. + + The operation to purge the replication protection cluster. This operation will force delete the + replication protection cluster. Use the remove operation on replication protection cluster to + perform a clean disable replication protection cluster. + + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An instance of LROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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._purge_initial( + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + api_version=api_version, + 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): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **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 _apply_recovery_point_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: Union[_models.ApplyClusterRecoveryPointInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(apply_cluster_recovery_point_input, (IOBase, bytes)): + _content = apply_cluster_recovery_point_input + else: + _json = self._serialize.body(apply_cluster_recovery_point_input, "ApplyClusterRecoveryPointInput") + + _request = build_apply_recovery_point_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_apply_recovery_point( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: _models.ApplyClusterRecoveryPointInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute the change recovery point operation for cluster. + + Operation to apply a new cluster recovery point on the Protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param apply_cluster_recovery_point_input: Apply recovery point input. Required. + :type apply_cluster_recovery_point_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_apply_recovery_point( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute the change recovery point operation for cluster. + + Operation to apply a new cluster recovery point on the Protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param apply_cluster_recovery_point_input: Apply recovery point input. Required. + :type apply_cluster_recovery_point_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_apply_recovery_point( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + apply_cluster_recovery_point_input: Union[_models.ApplyClusterRecoveryPointInput, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute the change recovery point operation for cluster. + + Operation to apply a new cluster recovery point on the Protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param apply_cluster_recovery_point_input: Apply recovery point input. Is either a + ApplyClusterRecoveryPointInput type or a IO[bytes] type. Required. + :type apply_cluster_recovery_point_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ApplyClusterRecoveryPointInput or IO[bytes] + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._apply_recovery_point_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + apply_cluster_recovery_point_input=apply_cluster_recovery_point_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _failover_commit_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> Iterator[bytes]: + 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) + + _request = build_failover_commit_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + def begin_failover_commit( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute commit failover for cluster. + + Operation to initiate commit failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._failover_commit_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @distributed_trace + def get_operation_results( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + job_id: str, + **kwargs: Any + ) -> _models.ReplicationProtectionCluster: + """Tracks the Replication protection cluster async operation. + + Track the results of an asynchronous operation on the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param job_id: job id to track. Required. + :type job_id: str + :return: ReplicationProtectionCluster or the result of cls(response) + :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster + :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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = kwargs.pop("cls", None) + + _request = build_get_operation_results_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + job_id=job_id, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + def _repair_replication_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> Iterator[bytes]: + 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) + + _request = build_repair_replication_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + def begin_repair_replication( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Resynchronize or repair replication of protection cluster. + + The operation to repair replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._repair_replication_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _test_failover_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterTestFailoverInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(failover_input, (IOBase, bytes)): + _content = failover_input + else: + _json = self._serialize.body(failover_input, "ClusterTestFailoverInput") + + _request = build_test_failover_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_test_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: _models.ClusterTestFailoverInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover for cluster. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Cluster test failover input body. Required. + :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_test_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover for cluster. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Cluster test failover input body. Required. + :type failover_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_test_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterTestFailoverInput, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover for cluster. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Cluster test failover input body. Is either a ClusterTestFailoverInput + type or a IO[bytes] type. Required. + :type failover_input: ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverInput + or IO[bytes] + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._test_failover_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + failover_input=failover_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _test_failover_cleanup_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: Union[_models.ClusterTestFailoverCleanupInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(cleanup_input, (IOBase, bytes)): + _content = cleanup_input + else: + _json = self._serialize.body(cleanup_input, "ClusterTestFailoverCleanupInput") + + _request = build_test_failover_cleanup_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_test_failover_cleanup( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: _models.ClusterTestFailoverCleanupInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover cleanup for cluster. + + Operation to clean up the test failover of a replication protected cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param cleanup_input: Test failover cleanup input. Required. + :type cleanup_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverCleanupInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_test_failover_cleanup( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover cleanup for cluster. + + Operation to clean up the test failover of a replication protected cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param cleanup_input: Test failover cleanup input. Required. + :type cleanup_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_test_failover_cleanup( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + cleanup_input: Union[_models.ClusterTestFailoverCleanupInput, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute test failover cleanup for cluster. + + Operation to clean up the test failover of a replication protected cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param cleanup_input: Test failover cleanup input. Is either a ClusterTestFailoverCleanupInput + type or a IO[bytes] type. Required. + :type cleanup_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterTestFailoverCleanupInput or IO[bytes] + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._test_failover_cleanup_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + cleanup_input=cleanup_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _unplanned_failover_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterUnplannedFailoverInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(failover_input, (IOBase, bytes)): + _content = failover_input + else: + _json = self._serialize.body(failover_input, "ClusterUnplannedFailoverInput") + + _request = build_unplanned_failover_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_unplanned_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: _models.ClusterUnplannedFailoverInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute unplanned cluster failover. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Failover input. Required. + :type failover_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverInput + :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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_unplanned_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute unplanned cluster failover. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Failover input. Required. + :type failover_input: 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 either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_unplanned_failover( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + replication_protection_cluster_name: str, + failover_input: Union[_models.ClusterUnplannedFailoverInput, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.ReplicationProtectionCluster]: + """Execute unplanned cluster failover. + + Operation to initiate a failover of the replication protection cluster. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param replication_protection_cluster_name: Replication protection cluster name. Required. + :type replication_protection_cluster_name: str + :param failover_input: Failover input. Is either a ClusterUnplannedFailoverInput type or a + IO[bytes] type. Required. + :type failover_input: + ~azure.mgmt.recoveryservicessiterecovery.models.ClusterUnplannedFailoverInput or IO[bytes] + :return: An instance of LROPoller that returns either ReplicationProtectionCluster or the + result of cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ReplicationProtectionCluster] = 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._unplanned_failover_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + replication_protection_cluster_name=replication_protection_cluster_name, + failover_input=failover_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ReplicationProtectionCluster", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ReplicationProtectionCluster].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ReplicationProtectionCluster]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @distributed_trace + def list( + self, resource_name: str, skip_token: Optional[str] = None, filter: Optional[str] = None, **kwargs: Any + ) -> Iterable["_models.ReplicationProtectionCluster"]: + """Gets the list of Replication protection clusters in vault. + + Gets the list of ASR replication protected clusters in the vault. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param skip_token: The pagination token. Possible values: "FabricId" or "FabricId_CloudId" or + null. Default value is None. + :type skip_token: str + :param filter: OData filter options. Default value is None. + :type filter: str + :return: An iterator like instance of either ReplicationProtectionCluster or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionCluster] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.ReplicationProtectionClusterCollection] = 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_list_request( + resource_name=resource_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + skip_token=skip_token, + filter=filter, + api_version=api_version, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + 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 + ) + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request + + def extract_data(pipeline_response): + deserialized = self._deserialize("ReplicationProtectionClusterCollection", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link 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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_container_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_container_mappings_operations.py index 26051df53ac5..b01c3993cb4e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_container_mappings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_container_mappings_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,28 +42,28 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_protection_containers_request( +def build_list_by_replication_protection_containers_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -81,25 +84,25 @@ def build_get_request( fabric_name: str, protection_container_name: str, mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -121,15 +124,15 @@ def build_create_request( fabric_name: str, protection_container_name: str, mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -137,10 +140,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -164,22 +167,22 @@ def build_purge_request( fabric_name: str, protection_container_name: str, mapping_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -198,15 +201,15 @@ def build_update_request( fabric_name: str, protection_container_name: str, mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -214,10 +217,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -241,24 +244,24 @@ def build_delete_request( fabric_name: str, protection_container_name: str, mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}/remove", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -278,22 +281,22 @@ def build_delete_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionContainerMappings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -308,7 +311,7 @@ def build_list_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -class ReplicationProtectionContainerMappingsOperations: +class ReplicationProtectionContainerMappingsOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -322,13 +325,15 @@ class ReplicationProtectionContainerMappingsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protection_containers( + def list_by_replication_protection_containers( # pylint: disable=name-too-long self, fabric_name: str, protection_container_name: str, **kwargs: Any ) -> Iterable["_models.ProtectionContainerMapping"]: """Gets the list of protection container mappings for a protection container. @@ -339,7 +344,6 @@ def list_by_replication_protection_containers( :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -352,7 +356,7 @@ def list_by_replication_protection_containers( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -363,19 +367,17 @@ def list_by_replication_protection_containers( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protection_containers_request( + _request = build_list_by_replication_protection_containers_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protection_containers.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -387,13 +389,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerMappingCollection", pipeline_response) @@ -403,11 +404,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -419,10 +420,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_protection_containers.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings" - } - @distributed_trace def get( self, fabric_name: str, protection_container_name: str, mapping_name: str, **kwargs: Any @@ -437,12 +434,11 @@ def get( :type protection_container_name: str :param mapping_name: Protection Container mapping name. Required. :type mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ProtectionContainerMapping or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainerMapping :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -456,24 +452,22 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerMapping] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -482,26 +476,22 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, - creation_input: Union[_models.CreateProtectionContainerMappingInput, IO], + creation_input: Union[_models.CreateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainerMapping]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -514,7 +504,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainerMapping]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -524,47 +514,44 @@ def _create_initial( else: _json = self._serialize.body(creation_input, "CreateProtectionContainerMappingInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -593,14 +580,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -614,7 +593,7 @@ def begin_create( fabric_name: str, protection_container_name: str, mapping_name: str, - creation_input: IO, + creation_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -630,18 +609,10 @@ def begin_create( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param creation_input: Mapping creation input. Required. - :type creation_input: IO + :type creation_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -655,7 +626,7 @@ def begin_create( fabric_name: str, protection_container_name: str, mapping_name: str, - creation_input: Union[_models.CreateProtectionContainerMappingInput, IO], + creation_input: Union[_models.CreateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ProtectionContainerMapping]: """Create protection container mapping. @@ -669,20 +640,10 @@ def begin_create( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param creation_input: Mapping creation input. Is either a - CreateProtectionContainerMappingInput type or a IO type. Required. + CreateProtectionContainerMappingInput type or a IO[bytes] type. Required. :type creation_input: - ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerMappingInput or + IO[bytes] :return: An instance of LROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -711,12 +672,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -726,22 +688,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ProtectionContainerMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return LROPoller[_models.ProtectionContainerMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _purge_initial( # pylint: disable=inconsistent-return-statements + def _purge_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -753,40 +713,43 @@ def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore @distributed_trace def begin_purge( @@ -802,14 +765,6 @@ def begin_purge( :type protection_container_name: str :param mapping_name: Protection container mapping name. Required. :type mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -823,7 +778,7 @@ def begin_purge( 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._purge_initial( # type: ignore + raw_result = self._purge_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, @@ -833,11 +788,12 @@ def begin_purge( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -846,27 +802,23 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, - update_input: Union[_models.UpdateProtectionContainerMappingInput, IO], + update_input: Union[_models.UpdateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainerMapping]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -879,7 +831,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainerMapping]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -889,47 +841,44 @@ def _update_initial( else: _json = self._serialize.body(update_input, "UpdateProtectionContainerMappingInput") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -958,14 +907,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -979,7 +920,7 @@ def begin_update( fabric_name: str, protection_container_name: str, mapping_name: str, - update_input: IO, + update_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -995,18 +936,10 @@ def begin_update( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param update_input: Mapping update input. Required. - :type update_input: IO + :type update_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -1020,7 +953,7 @@ def begin_update( fabric_name: str, protection_container_name: str, mapping_name: str, - update_input: Union[_models.UpdateProtectionContainerMappingInput, IO], + update_input: Union[_models.UpdateProtectionContainerMappingInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ProtectionContainerMapping]: """Update protection container mapping. @@ -1034,20 +967,10 @@ def begin_update( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param update_input: Mapping update input. Is either a UpdateProtectionContainerMappingInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type update_input: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateProtectionContainerMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateProtectionContainerMappingInput or + IO[bytes] :return: An instance of LROPoller that returns either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -1076,12 +999,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response) + deserialized = self._deserialize("ProtectionContainerMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1091,27 +1015,25 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ProtectionContainerMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}" - } + return LROPoller[_models.ProtectionContainerMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements + def _delete_initial( self, fabric_name: str, protection_container_name: str, mapping_name: str, - removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO], + removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO[bytes]], **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1124,7 +1046,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1134,41 +1056,44 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements else: _json = self._serialize.body(removal_input, "RemoveProtectionContainerMappingInput") - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}/remove" - } + return deserialized # type: ignore @overload def begin_delete( @@ -1197,14 +1122,6 @@ def begin_delete( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1216,7 +1133,7 @@ def begin_delete( fabric_name: str, protection_container_name: str, mapping_name: str, - removal_input: IO, + removal_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1232,18 +1149,10 @@ def begin_delete( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param removal_input: Removal input. Required. - :type removal_input: IO + :type removal_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1255,7 +1164,7 @@ def begin_delete( fabric_name: str, protection_container_name: str, mapping_name: str, - removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO], + removal_input: Union[_models.RemoveProtectionContainerMappingInput, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: """Remove protection container mapping. @@ -1269,20 +1178,10 @@ def begin_delete( :param mapping_name: Protection container mapping name. Required. :type mapping_name: str :param removal_input: Removal input. Is either a RemoveProtectionContainerMappingInput type or - a IO type. Required. + a IO[bytes] type. Required. :type removal_input: - ~azure.mgmt.recoveryservicessiterecovery.models.RemoveProtectionContainerMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.RemoveProtectionContainerMappingInput or + IO[bytes] :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1297,7 +1196,7 @@ def begin_delete( 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, mapping_name=mapping_name, @@ -1309,11 +1208,12 @@ def begin_delete( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1322,17 +1222,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}/remove" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainerMapping"]: @@ -1340,7 +1236,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainerMapping"]: Lists the protection container mappings in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainerMapping or the result of cls(response) :rtype: @@ -1353,7 +1248,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainerMapping"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1364,17 +1259,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainerMapping"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1386,13 +1279,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerMappingCollection", pipeline_response) @@ -1402,11 +1294,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1417,7 +1309,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionContainerMappings" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_containers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_containers_operations.py index a8af9459b9fb..9bccd5467d49 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_containers_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_containers_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,23 +42,23 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_fabrics_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any +def build_list_by_replication_fabrics_request( # pylint: disable=name-too-long + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -74,25 +77,25 @@ def build_list_by_replication_fabrics_request( def build_get_request( fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -112,15 +115,15 @@ def build_get_request( def build_create_request( fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -128,10 +131,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -153,15 +156,15 @@ def build_create_request( def build_discover_protectable_item_request( fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -169,10 +172,10 @@ def build_discover_protectable_item_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/discoverProtectableItem", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -194,22 +197,22 @@ def build_discover_protectable_item_request( def build_delete_request( fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/remove", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -223,18 +226,68 @@ def build_delete_request( return HttpRequest(method="POST", url=_url, params=_params, **kwargs) +def build_switch_cluster_protection_request( + resource_name: str, + fabric_name: str, + protection_container_name: str, + resource_group_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", "2025-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/switchClusterProtection", + ) + path_format_arguments = { + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url( + "resource_name", resource_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "fabricName": _SERIALIZER.url( + "fabric_name", fabric_name, "str", pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$" + ), + "protectionContainerName": _SERIALIZER.url( + "protection_container_name", + protection_container_name, + "str", + pattern=r"^[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]$", + ), + } + + _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_switch_protection_request( fabric_name: str, protection_container_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -242,10 +295,10 @@ def build_switch_protection_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/switchprotection", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -265,22 +318,22 @@ def build_switch_protection_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionContainers", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -295,7 +348,7 @@ def build_list_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -class ReplicationProtectionContainersOperations: +class ReplicationProtectionContainersOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -309,10 +362,12 @@ class ReplicationProtectionContainersOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterable["_models.ProtectionContainer"]: @@ -322,7 +377,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainer or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] @@ -334,7 +388,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -345,18 +399,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -368,13 +420,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerCollection", pipeline_response) @@ -384,11 +435,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -400,10 +451,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers" - } - @distributed_trace def get(self, fabric_name: str, protection_container_name: str, **kwargs: Any) -> _models.ProtectionContainer: """Gets the protection container details. @@ -414,12 +461,11 @@ def get(self, fabric_name: str, protection_container_name: str, **kwargs: Any) - :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ProtectionContainer or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -433,23 +479,21 @@ def get(self, fabric_name: str, protection_container_name: str, **kwargs: Any) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainer] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -458,25 +502,21 @@ def get(self, fabric_name: str, protection_container_name: str, **kwargs: Any) - map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, protection_container_name: str, - creation_input: Union[_models.CreateProtectionContainerInput, IO], + creation_input: Union[_models.CreateProtectionContainerInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainer]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -489,7 +529,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainer]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -499,46 +539,43 @@ def _create_initial( else: _json = self._serialize.body(creation_input, "CreateProtectionContainerInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -564,14 +601,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -584,7 +613,7 @@ def begin_create( self, fabric_name: str, protection_container_name: str, - creation_input: IO, + creation_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -598,18 +627,10 @@ def begin_create( :param protection_container_name: Unique protection container ARM name. Required. :type protection_container_name: str :param creation_input: Creation input. Required. - :type creation_input: IO + :type creation_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -622,7 +643,7 @@ def begin_create( self, fabric_name: str, protection_container_name: str, - creation_input: Union[_models.CreateProtectionContainerInput, IO], + creation_input: Union[_models.CreateProtectionContainerInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ProtectionContainer]: """Create a protection container. @@ -633,21 +654,10 @@ def begin_create( :type fabric_name: str :param protection_container_name: Unique protection container ARM name. Required. :type protection_container_name: str - :param creation_input: Creation input. Is either a CreateProtectionContainerInput type or a IO - type. Required. + :param creation_input: Creation input. Is either a CreateProtectionContainerInput type or a + IO[bytes] type. Required. :type creation_input: - ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionContainerInput or IO[bytes] :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -675,12 +685,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -690,26 +701,24 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ProtectionContainer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}" - } + return LROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _discover_protectable_item_initial( self, fabric_name: str, protection_container_name: str, - discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO], + discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainer]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -722,7 +731,7 @@ def _discover_protectable_item_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainer]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -732,46 +741,43 @@ def _discover_protectable_item_initial( else: _json = self._serialize.body(discover_protectable_item_request, "DiscoverProtectableItemRequest") - request = build_discover_protectable_item_request( + _request = build_discover_protectable_item_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._discover_protectable_item_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _discover_protectable_item_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/discoverProtectableItem" - } + return deserialized # type: ignore @overload def begin_discover_protectable_item( @@ -798,14 +804,6 @@ def begin_discover_protectable_item( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -818,7 +816,7 @@ def begin_discover_protectable_item( self, fabric_name: str, protection_container_name: str, - discover_protectable_item_request: IO, + discover_protectable_item_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -833,18 +831,10 @@ def begin_discover_protectable_item( :type protection_container_name: str :param discover_protectable_item_request: The request object to add a protectable item. Required. - :type discover_protectable_item_request: IO + :type discover_protectable_item_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -857,7 +847,7 @@ def begin_discover_protectable_item( self, fabric_name: str, protection_container_name: str, - discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO], + discover_protectable_item_request: Union[_models.DiscoverProtectableItemRequest, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ProtectionContainer]: """Adds a protectable item to the replication protection container. @@ -869,20 +859,9 @@ def begin_discover_protectable_item( :param protection_container_name: The name of the protection container. Required. :type protection_container_name: str :param discover_protectable_item_request: The request object to add a protectable item. Is - either a DiscoverProtectableItemRequest type or a IO type. Required. + either a DiscoverProtectableItemRequest type or a IO[bytes] type. Required. :type discover_protectable_item_request: - ~azure.mgmt.recoveryservicessiterecovery.models.DiscoverProtectableItemRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.DiscoverProtectableItemRequest or IO[bytes] :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -910,12 +889,13 @@ def begin_discover_protectable_item( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -925,22 +905,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ProtectionContainer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_discover_protectable_item.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/discoverProtectableItem" - } + return LROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, protection_container_name: str, **kwargs: Any - ) -> None: - error_map = { + def _delete_initial(self, fabric_name: str, protection_container_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -952,39 +928,42 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/remove" - } + return deserialized # type: ignore @distributed_trace def begin_delete(self, fabric_name: str, protection_container_name: str, **kwargs: Any) -> LROPoller[None]: @@ -996,14 +975,6 @@ def begin_delete(self, fabric_name: str, protection_container_name: str, **kwarg :type fabric_name: str :param protection_container_name: Unique protection container ARM name. Required. :type protection_container_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1017,7 +988,7 @@ def begin_delete(self, fabric_name: str, protection_container_name: str, **kwarg 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, protection_container_name=protection_container_name, api_version=api_version, @@ -1026,11 +997,12 @@ def begin_delete(self, fabric_name: str, protection_container_name: str, **kwarg params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1039,26 +1011,246 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(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 - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/remove" - } + def _switch_cluster_protection_initial( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: Union[_models.SwitchClusterProtectionInput, 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 = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + 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" + _json = None + _content = None + if isinstance(switch_input, (IOBase, bytes)): + _content = switch_input + else: + _json = self._serialize.body(switch_input, "SwitchClusterProtectionInput") + + _request = build_switch_cluster_protection_request( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + resource_group_name=self._config.resource_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + headers=_headers, + params=_params, + ) + _request.url = self._client.format_url(_request.url) + + _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 = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) + + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_switch_cluster_protection( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: _models.SwitchClusterProtectionInput, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ProtectionContainer]: + """Switches protection from one container to another. + + Operation to switch protection from one container to another. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param switch_input: Switch protection input. Required. + :type switch_input: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionInput + :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 either ProtectionContainer or the result of + cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_switch_cluster_protection( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.ProtectionContainer]: + """Switches protection from one container to another. + + Operation to switch protection from one container to another. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param switch_input: Switch protection input. Required. + :type switch_input: 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 either ProtectionContainer or the result of + cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_switch_cluster_protection( + self, + resource_name: str, + fabric_name: str, + protection_container_name: str, + switch_input: Union[_models.SwitchClusterProtectionInput, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.ProtectionContainer]: + """Switches protection from one container to another. + + Operation to switch protection from one container to another. + + :param resource_name: The name of the recovery services vault. Required. + :type resource_name: str + :param fabric_name: Fabric name. Required. + :type fabric_name: str + :param protection_container_name: Protection container name. Required. + :type protection_container_name: str + :param switch_input: Switch protection input. Is either a SwitchClusterProtectionInput type or + a IO[bytes] type. Required. + :type switch_input: + ~azure.mgmt.recoveryservicessiterecovery.models.SwitchClusterProtectionInput or IO[bytes] + :return: An instance of LROPoller that returns either ProtectionContainer or the result of + cls(response) + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.ProtectionContainer] = 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._switch_cluster_protection_initial( + resource_name=resource_name, + fabric_name=fabric_name, + protection_container_name=protection_container_name, + switch_input=switch_input, + api_version=api_version, + 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): + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.ProtectionContainer].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _switch_protection_initial( self, fabric_name: str, protection_container_name: str, - switch_input: Union[_models.SwitchProtectionInput, IO], + switch_input: Union[_models.SwitchProtectionInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.ProtectionContainer]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1071,7 +1263,7 @@ def _switch_protection_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.ProtectionContainer]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1081,46 +1273,51 @@ def _switch_protection_initial( else: _json = self._serialize.body(switch_input, "SwitchProtectionInput") - request = build_switch_protection_request( + _request = build_switch_protection_request( fabric_name=fabric_name, protection_container_name=protection_container_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._switch_protection_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + response_headers = {} + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Retry-After"] = self._deserialize("str", response.headers.get("Retry-After")) - if cls: - return cls(pipeline_response, deserialized, {}) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) - return deserialized + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore - _switch_protection_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/switchprotection" - } + return deserialized # type: ignore @overload def begin_switch_protection( @@ -1146,14 +1343,6 @@ def begin_switch_protection( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -1166,7 +1355,7 @@ def begin_switch_protection( self, fabric_name: str, protection_container_name: str, - switch_input: IO, + switch_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -1181,18 +1370,10 @@ def begin_switch_protection( :param protection_container_name: Protection container name. Required. :type protection_container_name: str :param switch_input: Switch protection input. Required. - :type switch_input: IO + :type switch_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -1205,7 +1386,7 @@ def begin_switch_protection( self, fabric_name: str, protection_container_name: str, - switch_input: Union[_models.SwitchProtectionInput, IO], + switch_input: Union[_models.SwitchProtectionInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.ProtectionContainer]: """Switches protection from one container to another or one replication provider to another. @@ -1217,20 +1398,10 @@ def begin_switch_protection( :type fabric_name: str :param protection_container_name: Protection container name. Required. :type protection_container_name: str - :param switch_input: Switch protection input. Is either a SwitchProtectionInput type or a IO - type. Required. - :type switch_input: ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProtectionInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param switch_input: Switch protection input. Is either a SwitchProtectionInput type or a + IO[bytes] type. Required. + :type switch_input: ~azure.mgmt.recoveryservicessiterecovery.models.SwitchProtectionInput or + IO[bytes] :return: An instance of LROPoller that returns either ProtectionContainer or the result of cls(response) :rtype: @@ -1258,12 +1429,13 @@ def begin_switch_protection( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("ProtectionContainer", pipeline_response) + deserialized = self._deserialize("ProtectionContainer", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1273,17 +1445,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.ProtectionContainer].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_switch_protection.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/switchprotection" - } + return LROPoller[_models.ProtectionContainer]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainer"]: @@ -1291,7 +1461,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainer"]: Lists the protection containers in a vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProtectionContainer or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.ProtectionContainer] @@ -1303,7 +1472,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainer"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ProtectionContainerCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1314,17 +1483,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.ProtectionContainer"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1336,13 +1503,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ProtectionContainerCollection", pipeline_response) @@ -1352,11 +1518,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1367,7 +1533,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionContainers" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_intents_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_intents_operations.py index f78a2fa2418d..faa1e85c9bd5 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_intents_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_protection_intents_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,10 +6,12 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -20,15 +22,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -38,8 +39,8 @@ def build_list_request( - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, skip_token: Optional[str] = None, @@ -49,17 +50,17 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -79,22 +80,22 @@ def build_list_request( def build_get_request( - intent_object_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + intent_object_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "intentObjectName": _SERIALIZER.url("intent_object_name", intent_object_name, "str"), } @@ -111,12 +112,12 @@ def build_get_request( def build_create_request( - intent_object_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + intent_object_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -124,10 +125,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "intentObjectName": _SERIALIZER.url("intent_object_name", intent_object_name, "str"), } @@ -159,10 +160,12 @@ class ReplicationProtectionIntentsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list( @@ -176,7 +179,6 @@ def list( :type skip_token: str :param take_token: The page size. Default value is None. :type take_token: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ReplicationProtectionIntent or the result of cls(response) :rtype: @@ -189,7 +191,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectionIntentCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -200,19 +202,17 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, skip_token=skip_token, take_token=take_token, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -224,13 +224,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("ReplicationProtectionIntentCollection", pipeline_response) @@ -240,11 +239,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -256,10 +255,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents" - } - @distributed_trace def get(self, intent_object_name: str, **kwargs: Any) -> _models.ReplicationProtectionIntent: """Gets the details of a Replication protection intent item. @@ -268,12 +263,11 @@ def get(self, intent_object_name: str, **kwargs: Any) -> _models.ReplicationProt :param intent_object_name: Replication protection intent name. Required. :type intent_object_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -287,22 +281,20 @@ def get(self, intent_object_name: str, **kwargs: Any) -> _models.ReplicationProt api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.ReplicationProtectionIntent] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( intent_object_name=intent_object_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -311,16 +303,12 @@ def get(self, intent_object_name: str, **kwargs: Any) -> _models.ReplicationProt map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response) + deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}" - } + return deserialized # type: ignore @overload def create( @@ -342,7 +330,6 @@ def create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: @@ -350,7 +337,7 @@ def create( @overload def create( - self, intent_object_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, intent_object_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> _models.ReplicationProtectionIntent: """Create protection intent Resource. @@ -359,11 +346,10 @@ def create( :param intent_object_name: A name for the replication protection item. Required. :type intent_object_name: str :param input: Create Protection Intent Input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: @@ -371,7 +357,7 @@ def create( @distributed_trace def create( - self, intent_object_name: str, input: Union[_models.CreateProtectionIntentInput, IO], **kwargs: Any + self, intent_object_name: str, input: Union[_models.CreateProtectionIntentInput, IO[bytes]], **kwargs: Any ) -> _models.ReplicationProtectionIntent: """Create protection intent Resource. @@ -380,17 +366,14 @@ def create( :param intent_object_name: A name for the replication protection item. Required. :type intent_object_name: str :param input: Create Protection Intent Input. Is either a CreateProtectionIntentInput type or a - IO type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionIntentInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateProtectionIntentInput or + IO[bytes] :return: ReplicationProtectionIntent or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.ReplicationProtectionIntent :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -413,25 +396,23 @@ def create( else: _json = self._serialize.body(input, "CreateProtectionIntentInput") - request = build_create_request( + _request = build_create_request( intent_object_name=intent_object_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.create.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -440,13 +421,9 @@ def create( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response) + deserialized = self._deserialize("ReplicationProtectionIntent", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_plans_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_plans_operations.py index 50d88cbeb409..93663608195b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_plans_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_plans_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,22 +43,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -71,22 +74,22 @@ def build_list_request( def build_get_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -103,12 +106,12 @@ def build_get_request( def build_create_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -116,10 +119,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -138,19 +141,19 @@ def build_create_request( def build_delete_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -164,12 +167,12 @@ def build_delete_request( def build_update_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -177,10 +180,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -199,22 +202,22 @@ def build_update_request( def build_failover_cancel_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCancel", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -231,22 +234,22 @@ def build_failover_cancel_request( def build_failover_commit_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCommit", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -263,12 +266,12 @@ def build_failover_commit_request( def build_planned_failover_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -276,10 +279,10 @@ def build_planned_failover_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/plannedFailover", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -298,22 +301,22 @@ def build_planned_failover_request( def build_reprotect_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/reProtect", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -330,12 +333,12 @@ def build_reprotect_request( def build_test_failover_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -343,10 +346,10 @@ def build_test_failover_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailover", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -365,12 +368,12 @@ def build_test_failover_request( def build_test_failover_cleanup_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -378,10 +381,10 @@ def build_test_failover_cleanup_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailoverCleanup", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -400,12 +403,12 @@ def build_test_failover_cleanup_request( def build_unplanned_failover_request( - recovery_plan_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + recovery_plan_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -413,10 +416,10 @@ def build_unplanned_failover_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/unplannedFailover", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "recoveryPlanName": _SERIALIZER.url("recovery_plan_name", recovery_plan_name, "str"), } @@ -448,10 +451,12 @@ class ReplicationRecoveryPlansOperations: # pylint: disable=too-many-public-met def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> Iterable["_models.RecoveryPlan"]: @@ -459,7 +464,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.RecoveryPlan"]: Lists the recovery plans in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryPlan or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlan] @@ -471,7 +475,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.RecoveryPlan"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPlanCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -482,17 +486,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.RecoveryPlan"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -504,13 +506,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryPlanCollection", pipeline_response) @@ -520,11 +521,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -536,10 +537,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans" - } - @distributed_trace def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryPlan: """Gets the requested recovery plan. @@ -548,12 +545,11 @@ def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryPlan: :param recovery_plan_name: Name of the recovery plan. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: RecoveryPlan or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlan :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -567,22 +563,20 @@ def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryPlan: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryPlan] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -591,21 +585,17 @@ def get(self, recovery_plan_name: str, **kwargs: Any) -> _models.RecoveryPlan: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore def _create_initial( - self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -618,7 +608,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -628,45 +618,42 @@ def _create_initial( else: _json = self._serialize.body(input, "CreateRecoveryPlanInput") - request = build_create_request( + _request = build_create_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -688,14 +675,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -705,7 +684,7 @@ def begin_create( @overload def begin_create( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Creates a recovery plan with the given details. @@ -714,18 +693,10 @@ def begin_create( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery Plan creation input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -735,7 +706,7 @@ def begin_create( @distributed_trace def begin_create( - self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.CreateRecoveryPlanInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Creates a recovery plan with the given details. @@ -743,20 +714,10 @@ def begin_create( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :param input: Recovery Plan creation input. Is either a CreateRecoveryPlanInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateRecoveryPlanInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Recovery Plan creation input. Is either a CreateRecoveryPlanInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.CreateRecoveryPlanInput or + IO[bytes] :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -783,12 +744,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -798,22 +760,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, recovery_plan_name: str, **kwargs: Any - ) -> None: - error_map = { + def _delete_initial(self, recovery_plan_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -825,38 +783,41 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore @distributed_trace def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[None]: @@ -866,14 +827,6 @@ def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[None :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -887,7 +840,7 @@ def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[None 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( # type: ignore + raw_result = self._delete_initial( recovery_plan_name=recovery_plan_name, api_version=api_version, cls=lambda x, y, z: x, @@ -895,11 +848,12 @@ def begin_delete(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[None params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -908,22 +862,18 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( - self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -936,7 +886,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -946,45 +896,42 @@ def _update_initial( else: _json = self._serialize.body(input, "UpdateRecoveryPlanInput") - request = build_update_request( + _request = build_update_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -1006,14 +953,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1023,7 +962,7 @@ def begin_update( @overload def begin_update( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Updates the given recovery plan. @@ -1032,18 +971,10 @@ def begin_update( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Update recovery plan input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1053,7 +984,7 @@ def begin_update( @distributed_trace def begin_update( - self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.UpdateRecoveryPlanInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Updates the given recovery plan. @@ -1061,20 +992,10 @@ def begin_update( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :param input: Update recovery plan input. Is either a UpdateRecoveryPlanInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateRecoveryPlanInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Update recovery plan input. Is either a UpdateRecoveryPlanInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.UpdateRecoveryPlanInput or + IO[bytes] :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1101,12 +1022,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1116,20 +1038,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _failover_cancel_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional[_models.RecoveryPlan]: - error_map = { + def _failover_cancel_initial(self, recovery_plan_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1141,44 +1061,41 @@ def _failover_cancel_initial(self, recovery_plan_name: str, **kwargs: Any) -> Op _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_cancel_request( + _request = build_failover_cancel_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_cancel_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _failover_cancel_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCancel" - } + return deserialized # type: ignore @distributed_trace def begin_failover_cancel(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[_models.RecoveryPlan]: @@ -1188,14 +1105,6 @@ def begin_failover_cancel(self, recovery_plan_name: str, **kwargs: Any) -> LROPo :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1219,12 +1128,13 @@ def begin_failover_cancel(self, recovery_plan_name: str, **kwargs: Any) -> LROPo params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1234,20 +1144,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_cancel.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCancel" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _failover_commit_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional[_models.RecoveryPlan]: - error_map = { + def _failover_commit_initial(self, recovery_plan_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1259,44 +1167,41 @@ def _failover_commit_initial(self, recovery_plan_name: str, **kwargs: Any) -> Op _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_failover_commit_request( + _request = build_failover_commit_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._failover_commit_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _failover_commit_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCommit" - } + return deserialized # type: ignore @distributed_trace def begin_failover_commit(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[_models.RecoveryPlan]: @@ -1306,14 +1211,6 @@ def begin_failover_commit(self, recovery_plan_name: str, **kwargs: Any) -> LROPo :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1337,12 +1234,13 @@ def begin_failover_commit(self, recovery_plan_name: str, **kwargs: Any) -> LROPo params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1352,22 +1250,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_failover_commit.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/failoverCommit" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _planned_failover_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1380,7 +1276,7 @@ def _planned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1390,45 +1286,42 @@ def _planned_failover_initial( else: _json = self._serialize.body(input, "RecoveryPlanPlannedFailoverInput") - request = build_planned_failover_request( + _request = build_planned_failover_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._planned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _planned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/plannedFailover" - } + return deserialized # type: ignore @overload def begin_planned_failover( @@ -1450,14 +1343,6 @@ def begin_planned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1467,7 +1352,7 @@ def begin_planned_failover( @overload def begin_planned_failover( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute planned failover of the recovery plan. @@ -1476,18 +1361,10 @@ def begin_planned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Failover input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1497,7 +1374,7 @@ def begin_planned_failover( @distributed_trace def begin_planned_failover( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanPlannedFailoverInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute planned failover of the recovery plan. @@ -1505,21 +1382,10 @@ def begin_planned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :param input: Failover input. Is either a RecoveryPlanPlannedFailoverInput type or a IO type. - Required. + :param input: Failover input. Is either a RecoveryPlanPlannedFailoverInput type or a IO[bytes] + type. Required. :type input: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanPlannedFailoverInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1546,12 +1412,13 @@ def begin_planned_failover( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1561,20 +1428,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_planned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/plannedFailover" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _reprotect_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional[_models.RecoveryPlan]: - error_map = { + def _reprotect_initial(self, recovery_plan_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1586,61 +1451,51 @@ def _reprotect_initial(self, recovery_plan_name: str, **kwargs: Any) -> Optional _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_reprotect_request( + _request = build_reprotect_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._reprotect_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _reprotect_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/reProtect" - } + return deserialized # type: ignore @distributed_trace def begin_reprotect(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[_models.RecoveryPlan]: """Execute reprotect of the recovery plan. - The operation to reprotect(reverse replicate) a recovery plan. + The operation to reprotect(reverse replicate) a recovery plan. This api is for deprecated + scenarios and no longer works. :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1664,12 +1519,13 @@ def begin_reprotect(self, recovery_plan_name: str, **kwargs: Any) -> LROPoller[_ params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1679,22 +1535,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_reprotect.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/reProtect" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _test_failover_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1707,7 +1561,7 @@ def _test_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1717,45 +1571,42 @@ def _test_failover_initial( else: _json = self._serialize.body(input, "RecoveryPlanTestFailoverInput") - request = build_test_failover_request( + _request = build_test_failover_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _test_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailover" - } + return deserialized # type: ignore @overload def begin_test_failover( @@ -1777,14 +1628,6 @@ def begin_test_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1794,7 +1637,7 @@ def begin_test_failover( @overload def begin_test_failover( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute test failover of the recovery plan. @@ -1803,18 +1646,10 @@ def begin_test_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1824,7 +1659,7 @@ def begin_test_failover( @distributed_trace def begin_test_failover( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO], **kwargs: Any + self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute test failover of the recovery plan. @@ -1833,20 +1668,9 @@ def begin_test_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover input. Is either a RecoveryPlanTestFailoverInput type - or a IO type. Required. + or a IO[bytes] type. Required. :type input: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanTestFailoverInput or - IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + IO[bytes] :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -1873,12 +1697,13 @@ def begin_test_failover( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -1888,22 +1713,23 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailover" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _test_failover_cleanup_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO[bytes]], + **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1916,7 +1742,7 @@ def _test_failover_cleanup_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -1926,45 +1752,42 @@ def _test_failover_cleanup_initial( else: _json = self._serialize.body(input, "RecoveryPlanTestFailoverCleanupInput") - request = build_test_failover_cleanup_request( + _request = build_test_failover_cleanup_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._test_failover_cleanup_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _test_failover_cleanup_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailoverCleanup" - } + return deserialized # type: ignore @overload def begin_test_failover_cleanup( @@ -1987,14 +1810,6 @@ def begin_test_failover_cleanup( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -2004,7 +1819,7 @@ def begin_test_failover_cleanup( @overload def begin_test_failover_cleanup( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute test failover cleanup of the recovery plan. @@ -2013,18 +1828,10 @@ def begin_test_failover_cleanup( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover cleanup input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -2034,7 +1841,10 @@ def begin_test_failover_cleanup( @distributed_trace def begin_test_failover_cleanup( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO], **kwargs: Any + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanTestFailoverCleanupInput, IO[bytes]], + **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute test failover cleanup of the recovery plan. @@ -2043,20 +1853,10 @@ def begin_test_failover_cleanup( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan test failover cleanup input. Is either a - RecoveryPlanTestFailoverCleanupInput type or a IO type. Required. + RecoveryPlanTestFailoverCleanupInput type or a IO[bytes] type. Required. :type input: - ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanTestFailoverCleanupInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanTestFailoverCleanupInput or + IO[bytes] :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -2083,12 +1883,13 @@ def begin_test_failover_cleanup( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2098,22 +1899,23 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_test_failover_cleanup.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/testFailoverCleanup" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) def _unplanned_failover_initial( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO], **kwargs: Any - ) -> Optional[_models.RecoveryPlan]: - error_map = { + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO[bytes]], + **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -2126,7 +1928,7 @@ def _unplanned_failover_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryPlan]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -2136,45 +1938,42 @@ def _unplanned_failover_initial( else: _json = self._serialize.body(input, "RecoveryPlanUnplannedFailoverInput") - request = build_unplanned_failover_request( + _request = build_unplanned_failover_request( recovery_plan_name=recovery_plan_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._unplanned_failover_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _unplanned_failover_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/unplannedFailover" - } + return deserialized # type: ignore @overload def begin_unplanned_failover( @@ -2196,14 +1995,6 @@ def begin_unplanned_failover( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -2213,7 +2004,7 @@ def begin_unplanned_failover( @overload def begin_unplanned_failover( - self, recovery_plan_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, recovery_plan_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute unplanned failover of the recovery plan. @@ -2222,18 +2013,10 @@ def begin_unplanned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan unplanned failover input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -2243,7 +2026,10 @@ def begin_unplanned_failover( @distributed_trace def begin_unplanned_failover( - self, recovery_plan_name: str, input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO], **kwargs: Any + self, + recovery_plan_name: str, + input: Union[_models.RecoveryPlanUnplannedFailoverInput, IO[bytes]], + **kwargs: Any ) -> LROPoller[_models.RecoveryPlan]: """Execute unplanned failover of the recovery plan. @@ -2252,20 +2038,9 @@ def begin_unplanned_failover( :param recovery_plan_name: Recovery plan name. Required. :type recovery_plan_name: str :param input: Recovery plan unplanned failover input. Is either a - RecoveryPlanUnplannedFailoverInput type or a IO type. Required. + RecoveryPlanUnplannedFailoverInput type or a IO[bytes] type. Required. :type input: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryPlanUnplannedFailoverInput - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either RecoveryPlan or the result of cls(response) :rtype: @@ -2292,12 +2067,13 @@ def begin_unplanned_failover( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryPlan", pipeline_response) + deserialized = self._deserialize("RecoveryPlan", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -2307,14 +2083,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryPlan].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_unplanned_failover.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryPlans/{recoveryPlanName}/unplannedFailover" - } + return LROPoller[_models.RecoveryPlan]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_services_providers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_services_providers_operations.py index 9899bf21caf6..3f3e20da0510 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_services_providers_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_recovery_services_providers_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,23 +42,23 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_fabrics_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any +def build_list_by_replication_fabrics_request( # pylint: disable=name-too-long + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -74,25 +77,25 @@ def build_list_by_replication_fabrics_request( def build_get_request( fabric_name: str, provider_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "providerName": _SERIALIZER.url("provider_name", provider_name, "str"), @@ -112,15 +115,15 @@ def build_get_request( def build_create_request( fabric_name: str, provider_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -128,10 +131,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "providerName": _SERIALIZER.url("provider_name", provider_name, "str"), @@ -153,22 +156,22 @@ def build_create_request( def build_purge_request( fabric_name: str, provider_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "providerName": _SERIALIZER.url("provider_name", provider_name, "str"), @@ -185,25 +188,25 @@ def build_purge_request( def build_refresh_provider_request( fabric_name: str, provider_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/refreshProvider", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "providerName": _SERIALIZER.url("provider_name", provider_name, "str"), @@ -223,22 +226,22 @@ def build_refresh_provider_request( def build_delete_request( fabric_name: str, provider_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/remove", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "providerName": _SERIALIZER.url("provider_name", provider_name, "str"), @@ -253,22 +256,22 @@ def build_delete_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryServicesProviders", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -283,7 +286,7 @@ def build_list_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -class ReplicationRecoveryServicesProvidersOperations: +class ReplicationRecoveryServicesProvidersOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -297,10 +300,12 @@ class ReplicationRecoveryServicesProvidersOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics( @@ -312,7 +317,6 @@ def list_by_replication_fabrics( :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -325,7 +329,7 @@ def list_by_replication_fabrics( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryServicesProviderCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -336,18 +340,16 @@ def list_by_replication_fabrics( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -359,13 +361,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryServicesProviderCollection", pipeline_response) @@ -375,11 +376,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -391,10 +392,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders" - } - @distributed_trace def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _models.RecoveryServicesProvider: """Gets the details of a recovery services provider. @@ -405,12 +402,11 @@ def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _models.Re :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: RecoveryServicesProvider or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.RecoveryServicesProvider :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -424,23 +420,21 @@ def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _models.Re api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryServicesProvider] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -449,25 +443,21 @@ def get(self, fabric_name: str, provider_name: str, **kwargs: Any) -> _models.Re map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, provider_name: str, - add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO], + add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.RecoveryServicesProvider]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -480,7 +470,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.RecoveryServicesProvider]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -490,46 +480,43 @@ def _create_initial( else: _json = self._serialize.body(add_provider_input, "AddRecoveryServicesProviderInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -555,14 +542,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -575,7 +554,7 @@ def begin_create( self, fabric_name: str, provider_name: str, - add_provider_input: IO, + add_provider_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -589,18 +568,10 @@ def begin_create( :param provider_name: Recovery services provider name. Required. :type provider_name: str :param add_provider_input: Add provider input. Required. - :type add_provider_input: IO + :type add_provider_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -613,7 +584,7 @@ def begin_create( self, fabric_name: str, provider_name: str, - add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO], + add_provider_input: Union[_models.AddRecoveryServicesProviderInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.RecoveryServicesProvider]: """Adds a recovery services provider. @@ -625,20 +596,9 @@ def begin_create( :param provider_name: Recovery services provider name. Required. :type provider_name: str :param add_provider_input: Add provider input. Is either a AddRecoveryServicesProviderInput - type or a IO type. Required. + type or a IO[bytes] type. Required. :type add_provider_input: - ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.AddRecoveryServicesProviderInput or IO[bytes] :return: An instance of LROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -666,12 +626,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -681,22 +642,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryServicesProvider].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return LROPoller[_models.RecoveryServicesProvider]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _purge_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, provider_name: str, **kwargs: Any - ) -> None: - error_map = { + def _purge_initial(self, fabric_name: str, provider_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -708,39 +665,42 @@ def _purge_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_purge_request( + _request = build_purge_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._purge_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _purge_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return deserialized # type: ignore @distributed_trace def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) -> LROPoller[None]: @@ -752,14 +712,6 @@ def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) -> LR :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -773,7 +725,7 @@ def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) -> LR 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._purge_initial( # type: ignore + raw_result = self._purge_initial( fabric_name=fabric_name, provider_name=provider_name, api_version=api_version, @@ -782,11 +734,12 @@ def begin_purge(self, fabric_name: str, provider_name: str, **kwargs: Any) -> LR params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -795,22 +748,16 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_purge.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - def _refresh_provider_initial( - self, fabric_name: str, provider_name: str, **kwargs: Any - ) -> Optional[_models.RecoveryServicesProvider]: - error_map = { + def _refresh_provider_initial(self, fabric_name: str, provider_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -822,45 +769,42 @@ def _refresh_provider_initial( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.RecoveryServicesProvider]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_refresh_provider_request( + _request = build_refresh_provider_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._refresh_provider_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _refresh_provider_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/refreshProvider" - } + return deserialized # type: ignore @distributed_trace def begin_refresh_provider( @@ -874,14 +818,6 @@ def begin_refresh_provider( :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -906,12 +842,13 @@ def begin_refresh_provider( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response) + deserialized = self._deserialize("RecoveryServicesProvider", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -921,22 +858,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.RecoveryServicesProvider].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_refresh_provider.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/refreshProvider" - } + return LROPoller[_models.RecoveryServicesProvider]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, provider_name: str, **kwargs: Any - ) -> None: - error_map = { + def _delete_initial(self, fabric_name: str, provider_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -948,39 +881,42 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, provider_name=provider_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/remove" - } + return deserialized # type: ignore @distributed_trace def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any) -> LROPoller[None]: @@ -995,14 +931,6 @@ def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any) -> L :type fabric_name: str :param provider_name: Recovery services provider name. Required. :type provider_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -1016,7 +944,7 @@ def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any) -> L 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, provider_name=provider_name, api_version=api_version, @@ -1025,11 +953,12 @@ def begin_delete(self, fabric_name: str, provider_name: str, **kwargs: Any) -> L params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -1038,17 +967,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}/remove" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.RecoveryServicesProvider"]: @@ -1056,7 +981,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.RecoveryServicesProvider"]: Lists the registered recovery services providers in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either RecoveryServicesProvider or the result of cls(response) :rtype: @@ -1069,7 +993,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.RecoveryServicesProvider"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecoveryServicesProviderCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1080,17 +1004,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.RecoveryServicesProvider"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1102,13 +1024,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("RecoveryServicesProviderCollection", pipeline_response) @@ -1118,11 +1039,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1133,7 +1054,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationRecoveryServicesProviders" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classification_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classification_mappings_operations.py index 1ee2a303ef3c..518e5acfaa61 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classification_mappings_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classification_mappings_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,28 +42,28 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_storage_classifications_request( +def build_list_by_replication_storage_classifications_request( # pylint: disable=name-too-long fabric_name: str, storage_classification_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "storageClassificationName": _SERIALIZER.url("storage_classification_name", storage_classification_name, "str"), @@ -81,25 +84,25 @@ def build_get_request( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "storageClassificationName": _SERIALIZER.url("storage_classification_name", storage_classification_name, "str"), @@ -123,15 +126,15 @@ def build_create_request( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -139,10 +142,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "storageClassificationName": _SERIALIZER.url("storage_classification_name", storage_classification_name, "str"), @@ -168,22 +171,22 @@ def build_delete_request( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "storageClassificationName": _SERIALIZER.url("storage_classification_name", storage_classification_name, "str"), @@ -201,22 +204,22 @@ def build_delete_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationStorageClassificationMappings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -231,7 +234,7 @@ def build_list_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -class ReplicationStorageClassificationMappingsOperations: +class ReplicationStorageClassificationMappingsOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -245,13 +248,15 @@ class ReplicationStorageClassificationMappingsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_storage_classifications( + def list_by_replication_storage_classifications( # pylint: disable=name-too-long self, fabric_name: str, storage_classification_name: str, **kwargs: Any ) -> Iterable["_models.StorageClassificationMapping"]: """Gets the list of storage classification mappings objects under a storage. @@ -262,7 +267,6 @@ def list_by_replication_storage_classifications( :type fabric_name: str :param storage_classification_name: Storage classification name. Required. :type storage_classification_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassificationMapping or the result of cls(response) :rtype: @@ -275,7 +279,7 @@ def list_by_replication_storage_classifications( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -286,19 +290,17 @@ def list_by_replication_storage_classifications( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_storage_classifications_request( + _request = build_list_by_replication_storage_classifications_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_storage_classifications.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -310,13 +312,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationMappingCollection", pipeline_response) @@ -326,11 +327,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -342,10 +343,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_storage_classifications.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings" - } - @distributed_trace def get( self, @@ -364,12 +361,11 @@ def get( :type storage_classification_name: str :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: StorageClassificationMapping or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassificationMapping :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -383,24 +379,22 @@ def get( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationMapping] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -409,26 +403,22 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("StorageClassificationMapping", pipeline_response) + deserialized = self._deserialize("StorageClassificationMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - pairing_input: Union[_models.StorageClassificationMappingInput, IO], + pairing_input: Union[_models.StorageClassificationMappingInput, IO[bytes]], **kwargs: Any - ) -> Optional[_models.StorageClassificationMapping]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -441,7 +431,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.StorageClassificationMapping]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -451,47 +441,44 @@ def _create_initial( else: _json = self._serialize.body(pairing_input, "StorageClassificationMappingInput") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("StorageClassificationMapping", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -520,14 +507,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either StorageClassificationMapping or the result of cls(response) :rtype: @@ -541,7 +520,7 @@ def begin_create( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - pairing_input: IO, + pairing_input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -557,18 +536,10 @@ def begin_create( :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str :param pairing_input: Pairing input. Required. - :type pairing_input: IO + :type pairing_input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either StorageClassificationMapping or the result of cls(response) :rtype: @@ -582,7 +553,7 @@ def begin_create( fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, - pairing_input: Union[_models.StorageClassificationMappingInput, IO], + pairing_input: Union[_models.StorageClassificationMappingInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.StorageClassificationMapping]: """Create storage classification mapping. @@ -595,21 +566,10 @@ def begin_create( :type storage_classification_name: str :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str - :param pairing_input: Pairing input. Is either a StorageClassificationMappingInput type or a IO - type. Required. + :param pairing_input: Pairing input. Is either a StorageClassificationMappingInput type or a + IO[bytes] type. Required. :type pairing_input: - ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassificationMappingInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassificationMappingInput or IO[bytes] :return: An instance of LROPoller that returns either StorageClassificationMapping or the result of cls(response) :rtype: @@ -638,12 +598,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("StorageClassificationMapping", pipeline_response) + deserialized = self._deserialize("StorageClassificationMapping", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -653,26 +614,24 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.StorageClassificationMapping].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return LROPoller[_models.StorageClassificationMapping]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements + def _delete_initial( self, fabric_name: str, storage_classification_name: str, storage_classification_mapping_name: str, **kwargs: Any - ) -> None: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -684,40 +643,43 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return deserialized # type: ignore @distributed_trace def begin_delete( @@ -737,14 +699,6 @@ def begin_delete( :type storage_classification_name: str :param storage_classification_mapping_name: Storage classification mapping name. Required. :type storage_classification_mapping_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -758,7 +712,7 @@ def begin_delete( 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, storage_classification_name=storage_classification_name, storage_classification_mapping_name=storage_classification_mapping_name, @@ -768,11 +722,12 @@ def begin_delete( params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -781,17 +736,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}/replicationStorageClassificationMappings/{storageClassificationMappingName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.StorageClassificationMapping"]: @@ -799,7 +750,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.StorageClassificationMapping" Lists the storage classification mappings in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassificationMapping or the result of cls(response) :rtype: @@ -812,7 +762,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.StorageClassificationMapping" api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationMappingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -823,17 +773,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.StorageClassificationMapping" def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -845,13 +793,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationMappingCollection", pipeline_response) @@ -861,11 +808,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -876,7 +823,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationStorageClassificationMappings" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classifications_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classifications_operations.py index ed001c3b67fc..c9f75be2844f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classifications_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_storage_classifications_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,23 +37,23 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_fabrics_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any +def build_list_by_replication_fabrics_request( # pylint: disable=name-too-long + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -71,25 +72,25 @@ def build_list_by_replication_fabrics_request( def build_get_request( fabric_name: str, storage_classification_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "storageClassificationName": _SERIALIZER.url("storage_classification_name", storage_classification_name, "str"), @@ -107,22 +108,22 @@ def build_get_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationStorageClassifications", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -137,7 +138,7 @@ def build_list_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -class ReplicationStorageClassificationsOperations: +class ReplicationStorageClassificationsOperations: # pylint: disable=name-too-long """ .. warning:: **DO NOT** instantiate this class directly. @@ -151,10 +152,12 @@ class ReplicationStorageClassificationsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterable["_models.StorageClassification"]: @@ -164,7 +167,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab :param fabric_name: Site name of interest. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassification or the result of cls(response) :rtype: @@ -177,7 +179,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -188,18 +190,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -211,13 +211,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationCollection", pipeline_response) @@ -227,11 +226,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -243,10 +242,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications" - } - @distributed_trace def get(self, fabric_name: str, storage_classification_name: str, **kwargs: Any) -> _models.StorageClassification: """Gets the details of a storage classification. @@ -257,12 +252,11 @@ def get(self, fabric_name: str, storage_classification_name: str, **kwargs: Any) :type fabric_name: str :param storage_classification_name: Storage classification name. Required. :type storage_classification_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: StorageClassification or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.StorageClassification :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -276,23 +270,21 @@ def get(self, fabric_name: str, storage_classification_name: str, **kwargs: Any) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassification] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, storage_classification_name=storage_classification_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -301,16 +293,12 @@ def get(self, fabric_name: str, storage_classification_name: str, **kwargs: Any) map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("StorageClassification", pipeline_response) + deserialized = self._deserialize("StorageClassification", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationStorageClassifications/{storageClassificationName}" - } + return deserialized # type: ignore @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.StorageClassification"]: @@ -318,7 +306,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.StorageClassification"]: Lists the storage classifications in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either StorageClassification or the result of cls(response) :rtype: @@ -331,7 +318,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.StorageClassification"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.StorageClassificationCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -342,17 +329,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.StorageClassification"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -364,13 +349,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("StorageClassificationCollection", pipeline_response) @@ -380,11 +364,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -395,7 +379,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationStorageClassifications" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_health_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_health_operations.py index fc815bfb4d6b..5ccab55e988b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_health_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_health_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,28 +6,31 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Callable, Dict, Optional, TypeVar, Union, cast +from collections.abc import MutableMapping +from typing import Any, Callable, Dict, Iterator, Optional, TypeVar, Union, cast +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,21 +39,21 @@ _SERIALIZER.client_side_validation = False -def build_get_request(resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any) -> HttpRequest: +def build_get_request(resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -66,22 +69,22 @@ def build_get_request(resource_name: str, resource_group_name: str, subscription def build_refresh_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth/default/refresh", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -110,10 +113,12 @@ class ReplicationVaultHealthOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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, **kwargs: Any) -> _models.VaultHealthDetails: @@ -121,12 +126,11 @@ def get(self, **kwargs: Any) -> _models.VaultHealthDetails: Gets the health details of the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: VaultHealthDetails or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.VaultHealthDetails :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -140,21 +144,19 @@ def get(self, **kwargs: Any) -> _models.VaultHealthDetails: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VaultHealthDetails] = kwargs.pop("cls", None) - request = build_get_request( - resource_name=self._config.resource_name, + _request = build_get_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -163,19 +165,15 @@ def get(self, **kwargs: Any) -> _models.VaultHealthDetails: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VaultHealthDetails", pipeline_response) + deserialized = self._deserialize("VaultHealthDetails", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth" - } + return deserialized # type: ignore - def _refresh_initial(self, **kwargs: Any) -> Optional[_models.VaultHealthDetails]: - error_map = { + def _refresh_initial(self, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -187,43 +185,40 @@ def _refresh_initial(self, **kwargs: Any) -> Optional[_models.VaultHealthDetails _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[Optional[_models.VaultHealthDetails]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_refresh_request( - resource_name=self._config.resource_name, + _request = build_refresh_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._refresh_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VaultHealthDetails", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, deserialized, {}) # type: ignore - _refresh_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth/default/refresh" - } + return deserialized # type: ignore @distributed_trace def begin_refresh(self, **kwargs: Any) -> LROPoller[_models.VaultHealthDetails]: @@ -231,14 +226,6 @@ def begin_refresh(self, **kwargs: Any) -> LROPoller[_models.VaultHealthDetails]: Refreshes health summary of the vault. - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VaultHealthDetails or the result of cls(response) :rtype: @@ -257,12 +244,13 @@ def begin_refresh(self, **kwargs: Any) -> LROPoller[_models.VaultHealthDetails]: raw_result = self._refresh_initial( api_version=api_version, 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): - deserialized = self._deserialize("VaultHealthDetails", pipeline_response) + deserialized = self._deserialize("VaultHealthDetails", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -272,14 +260,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VaultHealthDetails].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_refresh.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultHealth/default/refresh" - } + return LROPoller[_models.VaultHealthDetails]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_setting_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_setting_operations.py index d500572de548..23c500f55bf7 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_setting_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replication_vault_setting_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,22 +43,22 @@ def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -71,22 +74,22 @@ def build_list_request( def build_get_request( - vault_setting_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + vault_setting_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "vaultSettingName": _SERIALIZER.url("vault_setting_name", vault_setting_name, "str"), } @@ -103,12 +106,12 @@ def build_get_request( def build_create_request( - vault_setting_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + vault_setting_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -116,10 +119,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "vaultSettingName": _SERIALIZER.url("vault_setting_name", vault_setting_name, "str"), } @@ -151,10 +154,12 @@ class ReplicationVaultSettingOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list(self, **kwargs: Any) -> Iterable["_models.VaultSetting"]: @@ -162,7 +167,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.VaultSetting"]: Gets the list of vault setting. This includes the Migration Hub connection settings. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VaultSetting or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.VaultSetting] @@ -174,7 +178,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.VaultSetting"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VaultSettingCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -185,17 +189,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.VaultSetting"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -207,13 +209,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("VaultSettingCollection", pipeline_response) @@ -223,11 +224,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -239,10 +240,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings" - } - @distributed_trace def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSetting: """Gets the vault setting. @@ -251,12 +248,11 @@ def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSetting: :param vault_setting_name: Vault setting name. Required. :type vault_setting_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VaultSetting or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.VaultSetting :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -270,22 +266,20 @@ def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSetting: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VaultSetting] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( vault_setting_name=vault_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -294,21 +288,17 @@ def get(self, vault_setting_name: str, **kwargs: Any) -> _models.VaultSetting: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VaultSetting", pipeline_response) + deserialized = self._deserialize("VaultSetting", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}" - } + return deserialized # type: ignore def _create_initial( - self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO], **kwargs: Any - ) -> _models.VaultSetting: - error_map = { + self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO[bytes]], **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -321,7 +311,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.VaultSetting] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -331,43 +321,42 @@ def _create_initial( else: _json = self._serialize.body(input, "VaultSettingCreationInput") - request = build_create_request( + _request = build_create_request( vault_setting_name=vault_setting_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response if response.status_code not in [200]: + 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VaultSetting", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -390,14 +379,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VaultSetting or the result of cls(response) :rtype: @@ -407,7 +388,7 @@ def begin_create( @overload def begin_create( - self, vault_setting_name: str, input: IO, *, content_type: str = "application/json", **kwargs: Any + self, vault_setting_name: str, input: IO[bytes], *, content_type: str = "application/json", **kwargs: Any ) -> LROPoller[_models.VaultSetting]: """Updates vault setting. A vault setting object is a singleton per vault and it is always present by default. @@ -417,18 +398,10 @@ def begin_create( :param vault_setting_name: Vault setting name. Required. :type vault_setting_name: str :param input: Vault setting creation input. Required. - :type input: IO + :type input: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VaultSetting or the result of cls(response) :rtype: @@ -438,7 +411,7 @@ def begin_create( @distributed_trace def begin_create( - self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO], **kwargs: Any + self, vault_setting_name: str, input: Union[_models.VaultSettingCreationInput, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.VaultSetting]: """Updates vault setting. A vault setting object is a singleton per vault and it is always present by default. @@ -447,20 +420,10 @@ def begin_create( :param vault_setting_name: Vault setting name. Required. :type vault_setting_name: str - :param input: Vault setting creation input. Is either a VaultSettingCreationInput type or a IO - type. Required. - :type input: ~azure.mgmt.recoveryservicessiterecovery.models.VaultSettingCreationInput or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + :param input: Vault setting creation input. Is either a VaultSettingCreationInput type or a + IO[bytes] type. Required. + :type input: ~azure.mgmt.recoveryservicessiterecovery.models.VaultSettingCreationInput or + IO[bytes] :return: An instance of LROPoller that returns either VaultSetting or the result of cls(response) :rtype: @@ -487,12 +450,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VaultSetting", pipeline_response) + deserialized = self._deserialize("VaultSetting", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -502,14 +466,12 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VaultSetting].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationVaultSettings/{vaultSettingName}" - } + return LROPoller[_models.VaultSetting]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replicationv_centers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replicationv_centers_operations.py index 890baebb87eb..de666e001ea7 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replicationv_centers_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_replicationv_centers_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,31 +6,34 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from io import IOBase -from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload +from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -39,23 +42,23 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_fabrics_request( - fabric_name: str, resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any +def build_list_by_replication_fabrics_request( # pylint: disable=name-too-long + fabric_name: str, resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), } @@ -74,25 +77,25 @@ def build_list_by_replication_fabrics_request( def build_get_request( fabric_name: str, vcenter_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "vcenterName": _SERIALIZER.url("vcenter_name", vcenter_name, "str"), @@ -112,15 +115,15 @@ def build_get_request( def build_create_request( fabric_name: str, vcenter_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -128,10 +131,10 @@ def build_create_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "vcenterName": _SERIALIZER.url("vcenter_name", vcenter_name, "str"), @@ -153,22 +156,22 @@ def build_create_request( def build_delete_request( fabric_name: str, vcenter_name: str, - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "vcenterName": _SERIALIZER.url("vcenter_name", vcenter_name, "str"), @@ -185,15 +188,15 @@ def build_delete_request( def build_update_request( fabric_name: str, vcenter_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") @@ -201,10 +204,10 @@ def build_update_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "vcenterName": _SERIALIZER.url("vcenter_name", vcenter_name, "str"), @@ -224,22 +227,22 @@ def build_update_request( def build_list_request( - resource_name: str, resource_group_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationvCenters", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -268,10 +271,12 @@ class ReplicationvCentersOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterable["_models.VCenter"]: @@ -281,7 +286,6 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab :param fabric_name: Fabric name. Required. :type fabric_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VCenter or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -292,7 +296,7 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VCenterCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -303,18 +307,16 @@ def list_by_replication_fabrics(self, fabric_name: str, **kwargs: Any) -> Iterab def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_fabrics_request( + _request = build_list_by_replication_fabrics_request( fabric_name=fabric_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_fabrics.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -326,13 +328,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("VCenterCollection", pipeline_response) @@ -342,11 +343,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -358,10 +359,6 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_replication_fabrics.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters" - } - @distributed_trace def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _models.VCenter: """Gets the details of a vCenter. @@ -372,12 +369,11 @@ def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _models.VCe :type fabric_name: str :param vcenter_name: vcenter name. Required. :type vcenter_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: VCenter or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.VCenter :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -391,23 +387,21 @@ def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _models.VCe api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VCenter] = kwargs.pop("cls", None) - request = build_get_request( + _request = build_get_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -416,25 +410,21 @@ def get(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> _models.VCe map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = self._deserialize("VCenter", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore def _create_initial( self, fabric_name: str, vcenter_name: str, - add_v_center_request: Union[_models.AddVCenterRequest, IO], + add_v_center_request: Union[_models.AddVCenterRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.VCenter]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -447,7 +437,7 @@ def _create_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VCenter]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -457,46 +447,43 @@ def _create_initial( else: _json = self._serialize.body(add_v_center_request, "AddVCenterRequest") - request = build_create_request( + _request = build_create_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._create_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _create_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore @overload def begin_create( @@ -521,14 +508,6 @@ def begin_create( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VCenter or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -539,7 +518,7 @@ def begin_create( self, fabric_name: str, vcenter_name: str, - add_v_center_request: IO, + add_v_center_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -553,18 +532,10 @@ def begin_create( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param add_v_center_request: The input to the add vCenter operation. Required. - :type add_v_center_request: IO + :type add_v_center_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VCenter or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -575,7 +546,7 @@ def begin_create( self, fabric_name: str, vcenter_name: str, - add_v_center_request: Union[_models.AddVCenterRequest, IO], + add_v_center_request: Union[_models.AddVCenterRequest, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.VCenter]: """Add vCenter. @@ -587,20 +558,9 @@ def begin_create( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param add_v_center_request: The input to the add vCenter operation. Is either a - AddVCenterRequest type or a IO type. Required. + AddVCenterRequest type or a IO[bytes] type. Required. :type add_v_center_request: ~azure.mgmt.recoveryservicessiterecovery.models.AddVCenterRequest - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + or IO[bytes] :return: An instance of LROPoller that returns either VCenter or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -626,12 +586,13 @@ def begin_create( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = self._deserialize("VCenter", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -641,22 +602,18 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VCenter].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_create.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return LROPoller[_models.VCenter]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _delete_initial( # pylint: disable=inconsistent-return-statements - self, fabric_name: str, vcenter_name: str, **kwargs: Any - ) -> None: - error_map = { + def _delete_initial(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -668,39 +625,42 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - request = build_delete_request( + _request = build_delete_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response 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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - _delete_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore @distributed_trace def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> LROPoller[None]: @@ -712,14 +672,6 @@ def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> LR :type fabric_name: str :param vcenter_name: vcenter name. Required. :type vcenter_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either None or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: @@ -733,7 +685,7 @@ def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> LR 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( # type: ignore + raw_result = self._delete_initial( fabric_name=fabric_name, vcenter_name=vcenter_name, api_version=api_version, @@ -742,11 +694,12 @@ def begin_delete(self, fabric_name: str, vcenter_name: str, **kwargs: Any) -> LR params=_params, **kwargs ) + 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, {}) + return cls(pipeline_response, None, {}) # type: ignore if polling is True: polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) @@ -755,26 +708,22 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller.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(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_delete.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore def _update_initial( self, fabric_name: str, vcenter_name: str, - update_v_center_request: Union[_models.UpdateVCenterRequest, IO], + update_v_center_request: Union[_models.UpdateVCenterRequest, IO[bytes]], **kwargs: Any - ) -> Optional[_models.VCenter]: - error_map = { + ) -> Iterator[bytes]: + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -787,7 +736,7 @@ def _update_initial( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Optional[_models.VCenter]] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None @@ -797,46 +746,43 @@ def _update_initial( else: _json = self._serialize.body(update_v_center_request, "UpdateVCenterRequest") - request = build_update_request( + _request = build_update_request( fabric_name=fabric_name, vcenter_name=vcenter_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self._update_initial.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _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) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - _update_initial.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return deserialized # type: ignore @overload def begin_update( @@ -862,14 +808,6 @@ def begin_update( :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VCenter or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -880,7 +818,7 @@ def begin_update( self, fabric_name: str, vcenter_name: str, - update_v_center_request: IO, + update_v_center_request: IO[bytes], *, content_type: str = "application/json", **kwargs: Any @@ -894,18 +832,10 @@ def begin_update( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param update_v_center_request: The input to the update vCenter operation. Required. - :type update_v_center_request: IO + :type update_v_center_request: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. :return: An instance of LROPoller that returns either VCenter or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -916,7 +846,7 @@ def begin_update( self, fabric_name: str, vcenter_name: str, - update_v_center_request: Union[_models.UpdateVCenterRequest, IO], + update_v_center_request: Union[_models.UpdateVCenterRequest, IO[bytes]], **kwargs: Any ) -> LROPoller[_models.VCenter]: """Update vCenter operation. @@ -928,20 +858,9 @@ def begin_update( :param vcenter_name: vcenter name. Required. :type vcenter_name: str :param update_v_center_request: The input to the update vCenter operation. Is either a - UpdateVCenterRequest type or a IO type. Required. + UpdateVCenterRequest type or a IO[bytes] type. Required. :type update_v_center_request: - ~azure.mgmt.recoveryservicessiterecovery.models.UpdateVCenterRequest or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this - operation to not poll, or pass in your own initialized polling object for a personal polling - strategy. - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no - Retry-After header is present. + ~azure.mgmt.recoveryservicessiterecovery.models.UpdateVCenterRequest or IO[bytes] :return: An instance of LROPoller that returns either VCenter or the result of cls(response) :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -967,12 +886,13 @@ def begin_update( params=_params, **kwargs ) + raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) def get_long_running_output(pipeline_response): - deserialized = self._deserialize("VCenter", pipeline_response) + deserialized = self._deserialize("VCenter", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized if polling is True: @@ -982,17 +902,15 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller.from_continuation_token( + return LROPoller[_models.VCenter].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - begin_update.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationvCenters/{vcenterName}" - } + return LROPoller[_models.VCenter]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @distributed_trace def list(self, **kwargs: Any) -> Iterable["_models.VCenter"]: @@ -1000,7 +918,6 @@ def list(self, **kwargs: Any) -> Iterable["_models.VCenter"]: Lists the vCenter servers registered in the vault. - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either VCenter or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.VCenter] :raises ~azure.core.exceptions.HttpResponseError: @@ -1011,7 +928,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.VCenter"]: api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.VCenterCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1022,17 +939,15 @@ def list(self, **kwargs: Any) -> Iterable["_models.VCenter"]: def prepare_request(next_link=None): if not next_link: - request = build_list_request( - resource_name=self._config.resource_name, + _request = build_list_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -1044,13 +959,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("VCenterCollection", pipeline_response) @@ -1060,11 +974,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -1075,7 +989,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationvCenters" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_supported_operating_systems_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_supported_operating_systems_operations.py index df7ca061826f..b772c18b4d97 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_supported_operating_systems_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_supported_operating_systems_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,8 +6,10 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Optional, TypeVar +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -17,15 +19,14 @@ map_error, ) from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -35,8 +36,8 @@ def build_get_request( - resource_name: str, resource_group_name: str, + resource_name: str, subscription_id: str, *, instance_type: Optional[str] = None, @@ -45,17 +46,17 @@ def build_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationSupportedOperatingSystems", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } @@ -86,10 +87,12 @@ class SupportedOperatingSystemsOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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, instance_type: Optional[str] = None, **kwargs: Any) -> _models.SupportedOperatingSystems: @@ -99,12 +102,11 @@ def get(self, instance_type: Optional[str] = None, **kwargs: Any) -> _models.Sup :param instance_type: The instance type. Default value is None. :type instance_type: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: SupportedOperatingSystems or the result of cls(response) :rtype: ~azure.mgmt.recoveryservicessiterecovery.models.SupportedOperatingSystems :raises ~azure.core.exceptions.HttpResponseError: """ - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -118,22 +120,20 @@ def get(self, instance_type: Optional[str] = None, **kwargs: Any) -> _models.Sup api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.SupportedOperatingSystems] = kwargs.pop("cls", None) - request = build_get_request( - resource_name=self._config.resource_name, + _request = build_get_request( resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, instance_type=instance_type, api_version=api_version, - template_url=self.get.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -142,13 +142,9 @@ def get(self, instance_type: Optional[str] = None, **kwargs: Any) -> _models.Sup map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("SupportedOperatingSystems", pipeline_response) + deserialized = self._deserialize("SupportedOperatingSystems", pipeline_response.http_response) if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized - - get.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationSupportedOperatingSystems" - } + return deserialized # type: ignore diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_target_compute_sizes_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_target_compute_sizes_operations.py index 1fa485d27698..4d5ab848c048 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_target_compute_sizes_operations.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/azure/mgmt/recoveryservicessiterecovery/operations/_target_compute_sizes_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,9 +6,11 @@ # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from collections.abc import MutableMapping from typing import Any, Callable, Dict, Iterable, Optional, TypeVar import urllib.parse +from azure.core import PipelineClient from azure.core.exceptions import ( ClientAuthenticationError, HttpResponseError, @@ -19,15 +21,14 @@ ) from azure.core.paging import ItemPaged from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpResponse -from azure.core.rest import HttpRequest +from azure.core.rest import HttpRequest, HttpResponse from azure.core.tracing.decorator import distributed_trace from azure.core.utils import case_insensitive_dict from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer -from .._vendor import _convert_request +from .._configuration import SiteRecoveryManagementClientConfiguration +from .._serialization import Deserializer, Serializer T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -36,29 +37,29 @@ _SERIALIZER.client_side_validation = False -def build_list_by_replication_protected_items_request( +def build_list_by_replication_protected_items_request( # pylint: disable=name-too-long fabric_name: str, protection_container_name: str, replicated_protected_item_name: str, - resource_name: str, resource_group_name: str, + resource_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", "2023-08-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/targetComputeSizes", - ) # pylint: disable=line-too-long + ) path_format_arguments = { - "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "resourceName": _SERIALIZER.url("resource_name", resource_name, "str"), "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), "fabricName": _SERIALIZER.url("fabric_name", fabric_name, "str"), "protectionContainerName": _SERIALIZER.url("protection_container_name", protection_container_name, "str"), @@ -92,10 +93,12 @@ class TargetComputeSizesOperations: def __init__(self, *args, **kwargs): input_args = list(args) - self._client = input_args.pop(0) if input_args else kwargs.pop("client") - self._config = input_args.pop(0) if input_args else kwargs.pop("config") - self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SiteRecoveryManagementClientConfiguration = ( + 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 list_by_replication_protected_items( @@ -111,7 +114,6 @@ def list_by_replication_protected_items( :type protection_container_name: str :param replicated_protected_item_name: Replication protected item name. Required. :type replicated_protected_item_name: str - :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either TargetComputeSize or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.recoveryservicessiterecovery.models.TargetComputeSize] @@ -123,7 +125,7 @@ def list_by_replication_protected_items( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.TargetComputeSizeCollection] = kwargs.pop("cls", None) - error_map = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -134,20 +136,18 @@ def list_by_replication_protected_items( def prepare_request(next_link=None): if not next_link: - request = build_list_by_replication_protected_items_request( + _request = build_list_by_replication_protected_items_request( fabric_name=fabric_name, protection_container_name=protection_container_name, replicated_protected_item_name=replicated_protected_item_name, - resource_name=self._config.resource_name, resource_group_name=self._config.resource_group_name, + resource_name=self._config.resource_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.list_by_replication_protected_items.metadata["url"], headers=_headers, params=_params, ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) + _request.url = self._client.format_url(_request.url) else: # make call to next link with the client's api-version @@ -159,13 +159,12 @@ def prepare_request(next_link=None): } ) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest( + _request = HttpRequest( "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) - request.method = "GET" - return request + _request.url = self._client.format_url(_request.url) + _request.method = "GET" + return _request def extract_data(pipeline_response): deserialized = self._deserialize("TargetComputeSizeCollection", pipeline_response) @@ -175,11 +174,11 @@ def extract_data(pipeline_response): return deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): - request = prepare_request(next_link) + _request = prepare_request(next_link) _stream = False pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - request, stream=_stream, **kwargs + _request, stream=_stream, **kwargs ) response = pipeline_response.http_response @@ -190,7 +189,3 @@ def get_next(next_link=None): return pipeline_response return ItemPaged(get_next, extract_data) - - list_by_replication_protected_items.metadata = { - "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectedItems/{replicatedProtectedItemName}/targetComputeSizes" - } diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/cluster_recovery_point_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/cluster_recovery_point_get.py new file mode 100644 index 000000000000..765d7a52dd94 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/cluster_recovery_point_get.py @@ -0,0 +1,48 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python cluster_recovery_point_get.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.cluster_recovery_point.get( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + recovery_point_name="06b9ae7f-f21d-4a76-9897-5cf5d6004d80", + ) + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ClusterRecoveryPoint_Get.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/cluster_recovery_points_list_by_replication_protection_cluster.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/cluster_recovery_points_list_by_replication_protection_cluster.py new file mode 100644 index 000000000000..f3e1f26e1938 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/cluster_recovery_points_list_by_replication_protection_cluster.py @@ -0,0 +1,48 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python cluster_recovery_points_list_by_replication_protection_cluster.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.cluster_recovery_points.list_by_replication_protection_cluster( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ClusterRecoveryPoints_ListByReplicationProtectionCluster.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_get.py index 05d22adc4fde..18bceb49ffef 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/MigrationRecoveryPoints_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/MigrationRecoveryPoints_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_list_by_replication_migration_items.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_list_by_replication_migration_items.py index 5755c9d90751..01191d909f67 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_list_by_replication_migration_items.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/migration_recovery_points_list_by_replication_migration_items.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/MigrationRecoveryPoints_ListByReplicationMigrationItems.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/MigrationRecoveryPoints_ListByReplicationMigrationItems.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/operations_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/operations_list.py index 103de62e6f70..a7135c37e540 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/operations_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/operations_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/Operations_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Operations_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_get.py index f6239bd95add..a37ba66e883e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/RecoveryPoints_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/RecoveryPoints_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_list_by_replication_protected_items.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_list_by_replication_protected_items.py index 7bfa5e0abdb4..5ce64ff65922 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_list_by_replication_protected_items.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/recovery_points_list_by_replication_protected_items.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/RecoveryPoints_ListByReplicationProtectedItems.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/RecoveryPoints_ListByReplicationProtectedItems.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_create.py index ea9990ceb6c8..3bf5b1152cfd 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationAlertSettings_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationAlertSettings_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_get.py index 5d7ebd3559c2..845ab7348ce8 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationAlertSettings_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationAlertSettings_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_list.py index 66980e368a97..18c8bd78f2f0 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_alert_settings_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationAlertSettings_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationAlertSettings_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_appliances_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_appliances_list.py index 856eacda128b..f230cd262b0d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_appliances_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_appliances_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationAppliances_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationAppliances_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_get.py index 05b6a8db0de0..7e8fca6af58b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationEligibilityResults_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationEligibilityResults_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_list.py index fd1f04e64000..72ad82b9a4db 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_eligibility_results_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationEligibilityResults_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationEligibilityResults_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_get.py index 938e23504f01..a2dff347afba 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationEvents_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationEvents_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_list.py index 9496a3bb6577..713f3c06c0bf 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_events_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationEvents_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationEvents_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_check_consistency.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_check_consistency.py index 63afc7b4c7f3..eda04355c778 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_check_consistency.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_check_consistency.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_CheckConsistency.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_CheckConsistency.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_create.py index 9c5ea9a08716..63b4898494c1 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_delete.py index 925ea4e7802d..3551dec11cea 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_get.py index f5f73f698586..f5c2e2686089 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_list.py index 8021c60ec74a..12f1ab6a8b12 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_migrate_to_aad.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_migrate_to_aad.py index 97d078499575..48293844027a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_migrate_to_aad.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_migrate_to_aad.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_MigrateToAad.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_MigrateToAad.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_purge.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_purge.py index 52c95baf663a..a3101f7f4e0b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_purge.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_purge.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_Purge.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_Purge.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_reassociate_gateway.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_reassociate_gateway.py index db9f0db0ab3f..5231c82c3579 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_reassociate_gateway.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_reassociate_gateway.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -46,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_ReassociateGateway.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_ReassociateGateway.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_renew_certificate.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_renew_certificate.py index 030dc611292b..13198c3fe72f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_renew_certificate.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_fabrics_renew_certificate.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationFabrics_RenewCertificate.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationFabrics_RenewCertificate.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_infrastructure_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_infrastructure_delete.py index 7ecb56c7a722..6adf79b12efa 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_infrastructure_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_infrastructure_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationInfrastructure_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationInfrastructure_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_cancel.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_cancel.py index d67749339d51..e04d1b24dc2c 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_cancel.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_cancel.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationJobs_Cancel.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationJobs_Cancel.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_export.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_export.py index 501f87c47c72..c11c774b880b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_export.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_export.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -42,6 +44,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationJobs_Export.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationJobs_Export.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_get.py index 7ecff129f278..31b1af9fe1eb 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationJobs_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationJobs_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_list.py index 0e4e82c2286d..6efde9cfb419 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationJobs_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationJobs_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_restart.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_restart.py index 47d938394517..f33f5a72928f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_restart.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_restart.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationJobs_Restart.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationJobs_Restart.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_resume.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_resume.py index 6e33a66be140..19b605fac05f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_resume.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_jobs_resume.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationJobs_Resume.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationJobs_Resume.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_get.py index 26d86e6e6fe7..093b5f70eb34 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationLogicalNetworks_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationLogicalNetworks_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_list_by_replication_fabrics.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_list_by_replication_fabrics.py index bcd5c75b12c4..3ac5ec1c1158 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_list_by_replication_fabrics.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_logical_networks_list_by_replication_fabrics.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationLogicalNetworks_ListByReplicationFabrics.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationLogicalNetworks_ListByReplicationFabrics.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_create.py index 78fb77567117..9e17e23396d4 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -43,9 +45,12 @@ def main(): "disksToInclude": [ { "diskId": "disk1", + "diskSizeInGB": 60, + "iops": 3000, "isOSDisk": "true", "logStorageAccountId": "/Subscriptions/cb53d0c3-bd59-4721-89bc-06916a9147ef/resourceGroups/resourcegroup1/providers/Microsoft.Storage/storageAccounts/logStorageAccount1", "logStorageAccountSasSecretName": "logStorageSas", + "throughputInMbps": 5000, } ], "instanceType": "VMwareCbt", @@ -60,6 +65,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_delete.py index 2f715a5ba0f0..4c1aa5b71702 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_get.py index d3af32c4ea37..4d6620912506 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list.py index c24226b6d0c4..4d6455ad7c60 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list_by_replication_protection_containers.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list_by_replication_protection_containers.py index aca39b316e71..d947a5b392d6 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list_by_replication_protection_containers.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_list_by_replication_protection_containers.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_ListByReplicationProtectionContainers.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_ListByReplicationProtectionContainers.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_migrate.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_migrate.py index a769156d86d7..46a9bceba5b1 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_migrate.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_migrate.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -42,6 +44,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_Migrate.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_Migrate.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_pause_replication.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_pause_replication.py index 80243b14d7bf..2e7eadfff162 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_pause_replication.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_pause_replication.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_PauseReplication.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_PauseReplication.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resume_replication.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resume_replication.py index 2d6617516f41..9dcaf84d4c3a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resume_replication.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resume_replication.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -44,6 +46,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_ResumeReplication.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_ResumeReplication.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resync.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resync.py index 5555d03a0b9b..f398995ad377 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resync.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_resync.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_Resync.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_Resync.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate.py index b42df437dd98..0f0a32e0f382 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,7 @@ def main(): "providerSpecificDetails": { "instanceType": "VMwareCbt", "networkId": "/Subscriptions/cb53d0c3-bd59-4721-89bc-06916a9147ef/resourceGroups/resourcegroup1/providers/Microsoft.Network/virtualNetworks/virtualNetwork1", + "osUpgradeVersion": "Microsoft Windows Server 2019 (64-bit)", "recoveryPointId": "/Subscriptions/cb53d0c3-bd59-4721-89bc-06916a9147ef/resourceGroups/resourcegroup1/providers/Microsoft.RecoveryServices/vaults/migrationvault/replicationFabrics/vmwarefabric1/replicationProtectionContainers/vmwareContainer1/replicationMigrationItems/virtualmachine1/migrationRecoveryPoints/9e737191-317e-43d0-8c83-e32ac3b34686", } } @@ -48,6 +51,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_TestMigrate.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_TestMigrate.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate_cleanup.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate_cleanup.py index ee8ab3bc35f2..ddd7d8b81bea 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate_cleanup.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_test_migrate_cleanup.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_TestMigrateCleanup.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_TestMigrateCleanup.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_update.py index 8258cfb845c5..d5039fc56f76 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_update.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_migration_items_update.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationMigrationItems_Update.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationMigrationItems_Update.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_create.py index e5c8c9e7cdcd..8c870501147c 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -46,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworkMappings_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworkMappings_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_delete.py index 2cb897b52ac7..aa4f3393c4df 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworkMappings_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworkMappings_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_get.py index 5eac684a0968..dafce84c948d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworkMappings_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworkMappings_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list.py index c0c677f1cbe1..c1958f807deb 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworkMappings_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworkMappings_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list_by_replication_networks.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list_by_replication_networks.py index 61179c79ecb8..174708b9c758 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list_by_replication_networks.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_list_by_replication_networks.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworkMappings_ListByReplicationNetworks.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworkMappings_ListByReplicationNetworks.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_update.py index d12faba60a51..ac23478d1085 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_update.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_network_mappings_update.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -46,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworkMappings_Update.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworkMappings_Update.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_get.py index bc73a4e33be1..c39b3386d827 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworks_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworks_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list.py index 12ca9f09d042..f361e7697184 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworks_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworks_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list_by_replication_fabrics.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list_by_replication_fabrics.py index 68407aa1dcae..e609e4f2c069 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list_by_replication_fabrics.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_networks_list_by_replication_fabrics.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationNetworks_ListByReplicationFabrics.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationNetworks_ListByReplicationFabrics.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_create.py index 52a8ba781069..f9b0fa97a03d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationPolicies_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationPolicies_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_delete.py index 071ad9c7d9d3..2455fc76c06f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationPolicies_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationPolicies_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_get.py index 72b638b23d2f..77cf025e62aa 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationPolicies_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationPolicies_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_list.py index 2178f178fe96..17ddbc063fdd 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationPolicies_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationPolicies_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_update.py index cf097e8d708a..1f83655b33d3 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_update.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_policies_update.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationPolicies_Update.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationPolicies_Update.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_get.py index 34a44efa1b9d..c3d642ea9540 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectableItems_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectableItems_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_list_by_replication_protection_containers.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_list_by_replication_protection_containers.py index 866663cdefb6..62251eb794f2 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_list_by_replication_protection_containers.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protectable_items_list_by_replication_protection_containers.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectableItems_ListByReplicationProtectionContainers.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectableItems_ListByReplicationProtectionContainers.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_add_disks.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_add_disks.py index 413d9feb80fc..0341c3136b86 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_add_disks.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_add_disks.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -53,6 +55,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_AddDisks.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_AddDisks.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_apply_recovery_point.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_apply_recovery_point.py index 770efd71b4c4..e91023c21789 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_apply_recovery_point.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_apply_recovery_point.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -45,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_ApplyRecoveryPoint.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_ApplyRecoveryPoint.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_create.py index e949960286b6..0bdee893cc20 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -46,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_delete.py index 7dd4ab74e5c0..883990d10d5b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -41,6 +43,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_cancel.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_cancel.py index 74e4eb30d6c9..5dc70a4752db 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_cancel.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_cancel.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_FailoverCancel.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_FailoverCancel.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_commit.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_commit.py index 6d3a4c52b467..a785827ff3c2 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_commit.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_failover_commit.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_FailoverCommit.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_FailoverCommit.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_get.py index cf8e3003bfb9..220549cb3e08 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list.py index b2c66c2a0282..7d6eb6792356 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list_by_replication_protection_containers.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list_by_replication_protection_containers.py index 64f34aa80f2b..c8842107b83f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list_by_replication_protection_containers.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_list_by_replication_protection_containers.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_ListByReplicationProtectionContainers.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_ListByReplicationProtectionContainers.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_planned_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_planned_failover.py index 33615cf223b8..5cc811f4b92e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_planned_failover.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_planned_failover.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -45,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_PlannedFailover.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_PlannedFailover.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_purge.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_purge.py index 63072b3447a1..7c9d0f308ad6 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_purge.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_purge.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_Purge.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_Purge.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_remove_disks.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_remove_disks.py index fa141310ad7b..321a6ccdd466 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_remove_disks.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_remove_disks.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -47,6 +49,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_RemoveDisks.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_RemoveDisks.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_repair_replication.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_repair_replication.py index 8b4d78efc516..8a9c4b61691e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_repair_replication.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_repair_replication.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_RepairReplication.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_RepairReplication.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_reprotect.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_reprotect.py index 58f1946145d1..bc7bee511371 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_reprotect.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_reprotect.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -45,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_Reprotect.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_Reprotect.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_resolve_health_errors.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_resolve_health_errors.py index e134c91fa9d1..eeaf4a013d02 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_resolve_health_errors.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_resolve_health_errors.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_ResolveHealthErrors.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_ResolveHealthErrors.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_switch_provider.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_switch_provider.py index 0df298ae7639..13beb91e177d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_switch_provider.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_switch_provider.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -50,6 +52,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_SwitchProvider.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_SwitchProvider.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover.py index 31aba82e80e4..3af17ccf818e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -47,6 +49,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_TestFailover.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_TestFailover.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover_cleanup.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover_cleanup.py index ca02519b8569..b8c0c5507617 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover_cleanup.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_test_failover_cleanup.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_TestFailoverCleanup.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_TestFailoverCleanup.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_unplanned_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_unplanned_failover.py index 24df21699f0c..cdafee7830dc 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_unplanned_failover.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_unplanned_failover.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -46,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_UnplannedFailover.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_UnplannedFailover.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update.py index 4a018b530a4c..5f139501d079 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -62,6 +64,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_Update.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_Update.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_appliance.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_appliance.py index 9e8675544ab3..8cdaca87840c 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_appliance.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_appliance.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -45,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_UpdateAppliance.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_UpdateAppliance.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_mobility_service.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_mobility_service.py index eb28593fba3d..198f53eccb54 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_mobility_service.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protected_items_update_mobility_service.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectedItems_UpdateMobilityService.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectedItems_UpdateMobilityService.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_apply_recovery_point.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_apply_recovery_point.py new file mode 100644 index 000000000000..e4a2b2073be2 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_apply_recovery_point.py @@ -0,0 +1,56 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_apply_recovery_point.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_apply_recovery_point( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + apply_cluster_recovery_point_input={ + "properties": { + "clusterRecoveryPointId": "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/shashankvaultpvt/replicationFabrics/fabric-pri-eastus/replicationProtectionContainers/pri-cloud-eastus/replicationProtectionClusters/testcluster/recoveryPoints/cc48b7f3-b267-432b-ad76-45528974dc62", + "individualNodeRecoveryPoints": [ + "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/shashankvaultpvt/replicationFabrics/fabric-pri-eastus/replicationProtectionContainers/pri-cloud-eastus/replicationProtectedItems/testVM/recoveryPoints/b5c2051b-79e3-41ad-9d25-244f6ef8ce7d" + ], + "providerSpecificDetails": {"instanceType": "A2A"}, + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_ApplyRecoveryPoint.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_create.py new file mode 100644 index 000000000000..b86ae2fe8457 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_create.py @@ -0,0 +1,53 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_create.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_create( + fabric_name="eastus", + protection_container_name="eastus-container", + replication_protection_cluster_name="cluster12", + replication_protection_cluster={ + "properties": { + "policyId": "/Subscriptions/c183865e-6077-46f2-a3b1-deb0f4f4650a/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationPolicies/24-hour-retention-policy", + "providerSpecificDetails": {"instanceType": "A2A"}, + "recoveryContainerId": "/Subscriptions/c183865e-6077-46f2-a3b1-deb0f4f4650a/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationFabrics/centraluseuap/replicationProtectionContainers/centraluseuap-container", + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_Create.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_failover_commit.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_failover_commit.py new file mode 100644 index 000000000000..ea729e6be478 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_failover_commit.py @@ -0,0 +1,47 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_failover_commit.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_failover_commit( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_FailoverCommit.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_get.py new file mode 100644 index 000000000000..7fba959780fe --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_get.py @@ -0,0 +1,47 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_get.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.get( + resource_name="vault1", + fabric_name="eastus", + protection_container_name="eastus-container", + replication_protection_cluster_name="cluster1", + ) + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_Get.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_get_operation_results.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_get_operation_results.py new file mode 100644 index 000000000000..38129d80488f --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_get_operation_results.py @@ -0,0 +1,48 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_get_operation_results.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.get_operation_results( + resource_name="vault1", + fabric_name="eastus", + protection_container_name="eastus-container", + replication_protection_cluster_name="cluster1", + job_id="ea63a935-59d5-4b12-aff2-98773f63c116", + ) + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_GetOperationResults.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_list.py new file mode 100644 index 000000000000..239a284bdcc9 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_list.py @@ -0,0 +1,45 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_list.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.list( + resource_name="vault1", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_List.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_list_by_replication_protection_containers.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_list_by_replication_protection_containers.py new file mode 100644 index 000000000000..44cdffac36db --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_list_by_replication_protection_containers.py @@ -0,0 +1,47 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_list_by_replication_protection_containers.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.list_by_replication_protection_containers( + resource_name="vault1", + fabric_name="eastus", + protection_container_name="eastus-container", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_ListByReplicationProtectionContainers.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_purge.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_purge.py new file mode 100644 index 000000000000..f94221c10b34 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_purge.py @@ -0,0 +1,45 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_purge.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + client.replication_protection_clusters.begin_purge( + fabric_name="eastus", + protection_container_name="eastus-container", + replication_protection_cluster_name="cluster1", + ).result() + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_Purge.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_repair_replication.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_repair_replication.py new file mode 100644 index 000000000000..e3dd43754113 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_repair_replication.py @@ -0,0 +1,47 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_repair_replication.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="c183865e-6077-46f2-a3b1-deb0f4f4650a", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_repair_replication( + resource_name="vault1", + fabric_name="eastus", + protection_container_name="eastus-container", + replication_protection_cluster_name="cluster12", + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_RepairReplication.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_test_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_test_failover.py new file mode 100644 index 000000000000..88dcf7309553 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_test_failover.py @@ -0,0 +1,61 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_test_failover.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_test_failover( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + failover_input={ + "properties": { + "failoverDirection": "PrimaryToRecovery", + "networkId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ClusterTestRG-19-01-asr/providers/Microsoft.Network/virtualNetworks/adVNET-asr", + "networkType": "VmNetworkAsInput", + "providerSpecificDetails": { + "clusterRecoveryPointId": "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationFabrics/fabric-pri-eastus/replicationProtectionContainers/pri-cloud-eastus/replicationProtectionClusters/testcluster/recoveryPoints/cc48b7f3-b267-432b-ad76-45528974dc62", + "individualNodeRecoveryPoints": [ + "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationFabrics/fabric-pri-eastus/replicationProtectionContainers/pri-cloud-eastus/replicationProtectedItems/testVM/recoveryPoints/b5c2051b-79e3-41ad-9d25-244f6ef8ce7d" + ], + "instanceType": "A2A", + }, + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_TestFailover.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_test_failover_cleanup.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_test_failover_cleanup.py new file mode 100644 index 000000000000..d9b618724edf --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_test_failover_cleanup.py @@ -0,0 +1,48 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_test_failover_cleanup.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_test_failover_cleanup( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + cleanup_input={"properties": {"comments": "Test Failover Cleanup"}}, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_TestFailoverCleanup.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_unplanned_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_unplanned_failover.py new file mode 100644 index 000000000000..d13e33c5db55 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_clusters_unplanned_failover.py @@ -0,0 +1,60 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_clusters_unplanned_failover.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_clusters.begin_unplanned_failover( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + replication_protection_cluster_name="testcluster", + failover_input={ + "properties": { + "failoverDirection": "primarytorecovery", + "providerSpecificDetails": { + "clusterRecoveryPointId": "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationFabrics/fabric-pri-eastus/replicationProtectionContainers/pri-cloud-eastus/replicationProtectionClusters/testcluster/recoveryPoints/cc48b7f3-b267-432b-ad76-45528974dc62", + "individualNodeRecoveryPoints": [ + "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationFabrics/fabric-pri-eastus/replicationProtectionContainers/pri-cloud-eastus/replicationProtectedItems/testVM/recoveryPoints/b5c2051b-79e3-41ad-9d25-244f6ef8ce7d" + ], + "instanceType": "A2A", + }, + "sourceSiteOperations": "NotRequired", + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionClusters_UnplannedFailover.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_create.py index d0f8c494dacd..86667d4a21b8 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -46,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_delete.py index bb4a12bdf0af..cd3f4bcd0fc4 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_get.py index b9ed1ea9dc52..abc64ce7f865 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list.py index caddc6e958e9..2578c92d15cd 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list_by_replication_protection_containers.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list_by_replication_protection_containers.py index 7353201e8463..e72ec69de41f 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list_by_replication_protection_containers.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_list_by_replication_protection_containers.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_ListByReplicationProtectionContainers.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_ListByReplicationProtectionContainers.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_purge.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_purge.py index 6ff25c40bd48..d0ceb8d961f3 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_purge.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_purge.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_Purge.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_Purge.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_update.py index 29b4d7189035..2b50e754a08a 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_update.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_container_mappings_update.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -48,6 +50,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainerMappings_Update.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainerMappings_Update.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_create.py index 47e8cd29faaf..605bf2279d12 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -43,6 +45,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_delete.py index 3411b4fa48d8..f96ff25f3357 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_discover_protectable_item.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_discover_protectable_item.py index d1b301511b39..bc00025704fa 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_discover_protectable_item.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_discover_protectable_item.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -41,6 +43,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_DiscoverProtectableItem.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_DiscoverProtectableItem.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_get.py index a897a0f94202..ea2b1aac7bdd 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list.py index 45df3f7b3915..6c78db371d4c 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list_by_replication_fabrics.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list_by_replication_fabrics.py index 008b40b6918e..be4bfc753a7e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list_by_replication_fabrics.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_list_by_replication_fabrics.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_ListByReplicationFabrics.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_ListByReplicationFabrics.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_cluster_protection.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_cluster_protection.py new file mode 100644 index 000000000000..cb0d49fedfa0 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_cluster_protection.py @@ -0,0 +1,80 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replication_protection_containers_switch_cluster_protection.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="resourceGroupPS1", + resource_name="vault1", + ) + + response = client.replication_protection_containers.begin_switch_cluster_protection( + resource_name="vault1", + fabric_name="fabric-pri-eastus", + protection_container_name="pri-cloud-eastus", + switch_input={ + "properties": { + "providerSpecificDetails": { + "instanceType": "A2A", + "policyId": "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationPolicies/klncksan", + "protectedItemsDetail": [ + { + "recoveryResourceGroupId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ClusterTestRG-19-01-asr", + "replicationProtectedItemName": "yNdYnDYKZ7hYU7zyVeBychFBCyAbEkrJcJNUarDrXio", + "vmManagedDisks": [ + { + "diskId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourcegroups/clustertestrg-19-01/providers/microsoft.compute/disks/sdgql0-osdisk", + "primaryStagingAzureStorageAccountId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/clustertestrg-19-01/providers/Microsoft.Storage/storageAccounts/ix701lvaasrcache", + "recoveryResourceGroupId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ClusterTestRG-19-01-asr", + } + ], + }, + { + "recoveryResourceGroupId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ClusterTestRG-19-01-asr", + "replicationProtectedItemName": "kdUdWvpVnm3QgOQPHoVMX8YAtAO8OC4kKNjt40ERSr4", + "vmManagedDisks": [ + { + "diskId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourcegroups/clustertestrg-19-01/providers/microsoft.compute/disks/sdgql1-osdisk", + "primaryStagingAzureStorageAccountId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/clustertestrg-19-01/providers/Microsoft.Storage/storageAccounts/ix701lvaasrcache", + "recoveryResourceGroupId": "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ClusterTestRG-19-01-asr", + } + ], + }, + ], + "recoveryContainerId": "/Subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/resourceGroupPS1/providers/Microsoft.RecoveryServices/vaults/vault1/replicationFabrics/fabric-rec-westus/replicationProtectionContainers/rec-cloud-westus", + }, + "replicationProtectionClusterName": "testcluster", + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_SwitchClusterProtection.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_protection.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_protection.py index 6f13f74bfcda..76c6deb6b835 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_protection.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_containers_switch_protection.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -44,6 +46,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionContainers_SwitchProtection.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionContainers_SwitchProtection.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_create.py index 611d7dcfc270..67c0e8a745b0 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -50,6 +52,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionIntents_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionIntents_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_get.py index 9ed910dbb243..0b62dd69b786 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionIntents_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionIntents_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_list.py index db147d817c60..b745576415c3 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_protection_intents_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationProtectionIntents_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationProtectionIntents_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_create.py index 8be0cbe34799..41e1eb75f17d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -57,6 +59,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_delete.py index c6b03ff30006..c06f63a30d8e 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_cancel.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_cancel.py index 0b4c629a82a5..9ecb6d580c6b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_cancel.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_cancel.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_FailoverCancel.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_FailoverCancel.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_commit.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_commit.py index 583cd639b7a0..a0cfb586bddc 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_commit.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_failover_commit.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_FailoverCommit.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_FailoverCommit.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_get.py index 1b418a6bf187..1f115b9e8d90 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_list.py index d21424f3945e..91f479b422b5 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_planned_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_planned_failover.py index d16eb90fc687..eb8adff62694 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_planned_failover.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_planned_failover.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -43,6 +45,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_PlannedFailover.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_PlannedFailover.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_reprotect.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_reprotect.py index 36d99f572363..4ad4d0b33672 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_reprotect.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_reprotect.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_Reprotect.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_Reprotect.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover.py index bb8c3186d781..305e5919043d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -45,6 +47,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_TestFailover.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_TestFailover.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover_cleanup.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover_cleanup.py index 1621ec3167bb..50c74cf4a861 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover_cleanup.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_test_failover_cleanup.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_TestFailoverCleanup.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_TestFailoverCleanup.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_unplanned_failover.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_unplanned_failover.py index 721ea7e78362..776158ea7b64 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_unplanned_failover.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_unplanned_failover.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -44,6 +46,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_UnplannedFailover.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_UnplannedFailover.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_update.py index dd977a90faee..6eef9a0557c4 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_update.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_plans_update.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -77,6 +79,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryPlans_Update.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryPlans_Update.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_create.py index b9b2e4b293c6..c097c01548d1 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -57,6 +59,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_delete.py index 3a523efb3985..e0a36c56e7c5 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_get.py index 44c32075367f..06493f1848b8 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list.py index 63ed54d4dc71..468c926db2d1 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list_by_replication_fabrics.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list_by_replication_fabrics.py index 667a78beffa6..84bb0b53e089 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list_by_replication_fabrics.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_list_by_replication_fabrics.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_ListByReplicationFabrics.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_ListByReplicationFabrics.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_purge.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_purge.py index 580f6f2ab9e0..7a9432c27851 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_purge.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_purge.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_Purge.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_Purge.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_refresh_provider.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_refresh_provider.py index 765f0968175e..16185d805925 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_refresh_provider.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_recovery_services_providers_refresh_provider.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationRecoveryServicesProviders_RefreshProvider.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationRecoveryServicesProviders_RefreshProvider.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_create.py index 2bc2f6a4e00b..73232702af24 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -44,6 +46,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassificationMappings_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassificationMappings_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_delete.py index b710aeb23c39..238e4d6c3f55 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassificationMappings_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassificationMappings_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_get.py index 27a6397d991f..e585aa0fd7b8 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassificationMappings_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassificationMappings_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list.py index 82f2e490c4d9..3247ca019f7d 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassificationMappings_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassificationMappings_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list_by_replication_storage_classifications.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list_by_replication_storage_classifications.py index b1652eab7a09..8cf064b79d86 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list_by_replication_storage_classifications.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classification_mappings_list_by_replication_storage_classifications.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -39,6 +41,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassificationMappings_ListByReplicationStorageClassifications.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassificationMappings_ListByReplicationStorageClassifications.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_get.py index 9cf0e0b4d9a0..b8cb2c2bfeb0 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassifications_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassifications_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list.py index eb7e8f2f42fd..709f51bf72f3 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassifications_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassifications_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list_by_replication_fabrics.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list_by_replication_fabrics.py index a124b21f3da2..c14dbd0976ee 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list_by_replication_fabrics.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_storage_classifications_list_by_replication_fabrics.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationStorageClassifications_ListByReplicationFabrics.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationStorageClassifications_ListByReplicationFabrics.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_get.py index f7241c9c0226..7af2251b5375 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -35,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationVaultHealth_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationVaultHealth_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_refresh.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_refresh.py index 689741e95f5a..a218a747af58 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_refresh.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_health_refresh.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -35,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationVaultHealth_Refresh.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationVaultHealth_Refresh.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_create.py index 880b602f8fcd..e1fe09a0ddb3 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_create.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_create.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -42,6 +44,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationVaultSetting_Create.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationVaultSetting_Create.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_get.py index 27ca81a5a4b5..5bf8b3b3955b 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationVaultSetting_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationVaultSetting_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_list.py index dd760d3659b5..c1f106d86833 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replication_vault_setting_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationVaultSetting_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationVaultSetting_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_create.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_create.py new file mode 100644 index 000000000000..2a7fc5553792 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_create.py @@ -0,0 +1,54 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replicationv_centers_create.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="MadhaviVRG", + resource_name="MadhaviVault", + ) + + response = client.replicationv_centers.begin_create( + fabric_name="MadhaviFabric", + vcenter_name="esx-78", + add_v_center_request={ + "properties": { + "friendlyName": "esx-78", + "ipAddress": "inmtest78", + "port": "443", + "processServerId": "5A720CAB-39CB-F445-BD1662B0B33164B5", + "runAsAccountId": "2", + } + }, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationvCenters_Create.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_delete.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_delete.py index a9b08e5747d4..dfae1b127cb4 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_delete.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -37,6 +39,6 @@ def main(): ).result() -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationvCenters_Delete.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationvCenters_Delete.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_get.py index 005b1ecd77ee..255e948e82ed 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationvCenters_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationvCenters_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list.py index 87deb98ac206..4d81bcb8d3fd 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -36,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationvCenters_List.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationvCenters_List.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list_by_replication_fabrics.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list_by_replication_fabrics.py index b1930ae18f6d..78d6bad5b828 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list_by_replication_fabrics.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_list_by_replication_fabrics.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -38,6 +40,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/ReplicationvCenters_ListByReplicationFabrics.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationvCenters_ListByReplicationFabrics.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_update.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_update.py new file mode 100644 index 000000000000..6c816ae5291a --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/replicationv_centers_update.py @@ -0,0 +1,46 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-recoveryservicessiterecovery +# USAGE + python replicationv_centers_update.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 = SiteRecoveryManagementClient( + credential=DefaultAzureCredential(), + subscription_id="7c943c1b-5122-4097-90c8-861411bdd574", + resource_group_name="MadhaviVRG", + resource_name="MadhaviVault", + ) + + response = client.replicationv_centers.begin_update( + fabric_name="MadhaviFabric", + vcenter_name="esx-78", + update_v_center_request={"properties": {"ipAddress": "10.150.109.25"}}, + ).result() + print(response) + + +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ReplicationvCenters_Update.json +if __name__ == "__main__": + main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/supported_operating_systems_get.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/supported_operating_systems_get.py index a4c0e7c51742..cc7d040a2fa7 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/supported_operating_systems_get.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/supported_operating_systems_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -35,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/SupportedOperatingSystems_Get.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/SupportedOperatingSystems_Get.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/target_compute_sizes_list_by_replication_protected_items.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/target_compute_sizes_list_by_replication_protected_items.py index a40c60bdb023..a882c20364fa 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/target_compute_sizes_list_by_replication_protected_items.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_samples/target_compute_sizes_list_by_replication_protected_items.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +8,7 @@ # -------------------------------------------------------------------------- from azure.identity import DefaultAzureCredential + from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient """ @@ -40,6 +42,6 @@ def main(): print(item) -# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/examples/TargetComputeSizes_ListByReplicationProtectedItems.json +# x-ms-original-file: specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TargetComputeSizes_ListByReplicationProtectedItems.json if __name__ == "__main__": main() diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/conftest.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/conftest.py new file mode 100644 index 000000000000..0b42791e7e20 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/conftest.py @@ -0,0 +1,41 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import os +import pytest +from dotenv import load_dotenv +from devtools_testutils import ( + test_proxy, + add_general_regex_sanitizer, + add_body_key_sanitizer, + add_header_regex_sanitizer, +) + +load_dotenv() + + +# For security, please avoid record sensitive identity information in recordings +@pytest.fixture(scope="session", autouse=True) +def add_sanitizers(test_proxy): + siterecoverymanagement_subscription_id = os.environ.get( + "AZURE_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000" + ) + siterecoverymanagement_tenant_id = os.environ.get("AZURE_TENANT_ID", "00000000-0000-0000-0000-000000000000") + siterecoverymanagement_client_id = os.environ.get("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000") + siterecoverymanagement_client_secret = os.environ.get("AZURE_CLIENT_SECRET", "00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer( + regex=siterecoverymanagement_subscription_id, value="00000000-0000-0000-0000-000000000000" + ) + add_general_regex_sanitizer(regex=siterecoverymanagement_tenant_id, value="00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer(regex=siterecoverymanagement_client_id, value="00000000-0000-0000-0000-000000000000") + add_general_regex_sanitizer( + regex=siterecoverymanagement_client_secret, value="00000000-0000-0000-0000-000000000000" + ) + + add_header_regex_sanitizer(key="Set-Cookie", value="[set-cookie;]") + add_header_regex_sanitizer(key="Cookie", value="cookie;") + add_body_key_sanitizer(json_path="$..access_token", value="access_token") diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_point_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_point_operations.py new file mode 100644 index 000000000000..323ab6f58aed --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_point_operations.py @@ -0,0 +1,34 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementClusterRecoveryPointOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_cluster_recovery_point_get(self, resource_group): + response = self.client.cluster_recovery_point.get( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + recovery_point_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_point_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_point_operations_async.py new file mode 100644 index 000000000000..830046252aa2 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_point_operations_async.py @@ -0,0 +1,35 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementClusterRecoveryPointOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_cluster_recovery_point_get(self, resource_group): + response = await self.client.cluster_recovery_point.get( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + recovery_point_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_points_operations.py new file mode 100644 index 000000000000..bb4cda68d407 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_points_operations.py @@ -0,0 +1,33 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementClusterRecoveryPointsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_cluster_recovery_points_list_by_replication_protection_cluster(self, resource_group): + response = self.client.cluster_recovery_points.list_by_replication_protection_cluster( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_points_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_points_operations_async.py new file mode 100644 index 000000000000..3f95ae98d307 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_cluster_recovery_points_operations_async.py @@ -0,0 +1,34 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementClusterRecoveryPointsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_cluster_recovery_points_list_by_replication_protection_cluster(self, resource_group): + response = self.client.cluster_recovery_points.list_by_replication_protection_cluster( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_migration_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_migration_recovery_points_operations.py new file mode 100644 index 000000000000..0b0f8fee395c --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_migration_recovery_points_operations.py @@ -0,0 +1,46 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementMigrationRecoveryPointsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_migration_recovery_points_list_by_replication_migration_items(self, resource_group): + response = self.client.migration_recovery_points.list_by_replication_migration_items( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_migration_recovery_points_get(self, resource_group): + response = self.client.migration_recovery_points.get( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + migration_recovery_point_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_migration_recovery_points_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_migration_recovery_points_operations_async.py new file mode 100644 index 000000000000..43d196698995 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_migration_recovery_points_operations_async.py @@ -0,0 +1,47 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementMigrationRecoveryPointsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_migration_recovery_points_list_by_replication_migration_items(self, resource_group): + response = self.client.migration_recovery_points.list_by_replication_migration_items( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + api_version="2025-02-01", + ) + 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_migration_recovery_points_get(self, resource_group): + response = await self.client.migration_recovery_points.get( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + migration_recovery_point_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_operations.py new file mode 100644 index 000000000000..8bb30ede0c59 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_operations.py @@ -0,0 +1,29 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_operations_list(self, resource_group): + response = self.client.operations.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_operations_async.py new file mode 100644 index 000000000000..2d7757d5c535 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_operations_async.py @@ -0,0 +1,30 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_operations_list(self, resource_group): + response = self.client.operations.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_recovery_points_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_recovery_points_operations.py new file mode 100644 index 000000000000..b4ddc8540d51 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_recovery_points_operations.py @@ -0,0 +1,46 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementRecoveryPointsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_recovery_points_list_by_replication_protected_items(self, resource_group): + response = self.client.recovery_points.list_by_replication_protected_items( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_recovery_points_get(self, resource_group): + response = self.client.recovery_points.get( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + recovery_point_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_recovery_points_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_recovery_points_operations_async.py new file mode 100644 index 000000000000..713efe4b5908 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_recovery_points_operations_async.py @@ -0,0 +1,47 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementRecoveryPointsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_recovery_points_list_by_replication_protected_items(self, resource_group): + response = self.client.recovery_points.list_by_replication_protected_items( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + 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_recovery_points_get(self, resource_group): + response = await self.client.recovery_points.get( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + recovery_point_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_alert_settings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_alert_settings_operations.py new file mode 100644 index 000000000000..41675aedd1f6 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_alert_settings_operations.py @@ -0,0 +1,52 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationAlertSettingsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_alert_settings_list(self, resource_group): + response = self.client.replication_alert_settings.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_alert_settings_get(self, resource_group): + response = self.client.replication_alert_settings.get( + alert_setting_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_alert_settings_create(self, resource_group): + response = self.client.replication_alert_settings.create( + alert_setting_name="str", + request={"properties": {"customEmailAddresses": ["str"], "locale": "str", "sendToOwners": "str"}}, + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_alert_settings_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_alert_settings_operations_async.py new file mode 100644 index 000000000000..e000e5b61ba6 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_alert_settings_operations_async.py @@ -0,0 +1,53 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationAlertSettingsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_alert_settings_list(self, resource_group): + response = self.client.replication_alert_settings.list( + api_version="2025-02-01", + ) + 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_replication_alert_settings_get(self, resource_group): + response = await self.client.replication_alert_settings.get( + alert_setting_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_alert_settings_create(self, resource_group): + response = await self.client.replication_alert_settings.create( + alert_setting_name="str", + request={"properties": {"customEmailAddresses": ["str"], "locale": "str", "sendToOwners": "str"}}, + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_appliances_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_appliances_operations.py new file mode 100644 index 000000000000..e712f0b69eab --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_appliances_operations.py @@ -0,0 +1,29 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationAppliancesOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_appliances_list(self, resource_group): + response = self.client.replication_appliances.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_appliances_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_appliances_operations_async.py new file mode 100644 index 000000000000..b0e624cbca39 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_appliances_operations_async.py @@ -0,0 +1,30 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationAppliancesOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_appliances_list(self, resource_group): + response = self.client.replication_appliances.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_eligibility_results_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_eligibility_results_operations.py new file mode 100644 index 000000000000..e11c1678d4f2 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_eligibility_results_operations.py @@ -0,0 +1,41 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationEligibilityResultsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_eligibility_results_list(self, resource_group): + response = self.client.replication_eligibility_results.list( + virtual_machine_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_eligibility_results_get(self, resource_group): + response = self.client.replication_eligibility_results.get( + virtual_machine_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_eligibility_results_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_eligibility_results_operations_async.py new file mode 100644 index 000000000000..210fa4feba81 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_eligibility_results_operations_async.py @@ -0,0 +1,42 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationEligibilityResultsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_eligibility_results_list(self, resource_group): + response = await self.client.replication_eligibility_results.list( + virtual_machine_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_eligibility_results_get(self, resource_group): + response = await self.client.replication_eligibility_results.get( + virtual_machine_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_events_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_events_operations.py new file mode 100644 index 000000000000..f761ec7ed543 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_events_operations.py @@ -0,0 +1,40 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationEventsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_events_list(self, resource_group): + response = self.client.replication_events.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_events_get(self, resource_group): + response = self.client.replication_events.get( + event_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_events_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_events_operations_async.py new file mode 100644 index 000000000000..1a7803a8d02a --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_events_operations_async.py @@ -0,0 +1,41 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationEventsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_events_list(self, resource_group): + response = self.client.replication_events.list( + api_version="2025-02-01", + ) + 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_replication_events_get(self, resource_group): + response = await self.client.replication_events.get( + event_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_fabrics_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_fabrics_operations.py new file mode 100644 index 000000000000..41e44e4a5eba --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_fabrics_operations.py @@ -0,0 +1,140 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationFabricsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_fabrics_list(self, resource_group): + response = self.client.replication_fabrics.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_fabrics_get(self, resource_group): + response = self.client.replication_fabrics.get( + fabric_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_fabrics_begin_create(self, resource_group): + response = self.client.replication_fabrics.begin_create( + fabric_name="str", + input={"properties": {"customDetails": "fabric_specific_creation_input"}}, + api_version="2025-02-01", + ).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_replication_fabrics_begin_purge(self, resource_group): + response = self.client.replication_fabrics.begin_purge( + fabric_name="str", + api_version="2025-02-01", + ).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_replication_fabrics_begin_check_consistency(self, resource_group): + response = self.client.replication_fabrics.begin_check_consistency( + fabric_name="str", + api_version="2025-02-01", + ).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_replication_fabrics_begin_migrate_to_aad(self, resource_group): + response = self.client.replication_fabrics.begin_migrate_to_aad( + fabric_name="str", + api_version="2025-02-01", + ).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_replication_fabrics_begin_reassociate_gateway(self, resource_group): + response = self.client.replication_fabrics.begin_reassociate_gateway( + fabric_name="str", + failover_process_server_request={ + "properties": { + "containerName": "str", + "sourceProcessServerId": "str", + "targetProcessServerId": "str", + "updateType": "str", + "vmsToMigrate": ["str"], + } + }, + api_version="2025-02-01", + ).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_replication_fabrics_begin_delete(self, resource_group): + response = self.client.replication_fabrics.begin_delete( + fabric_name="str", + api_version="2025-02-01", + ).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_replication_fabrics_begin_renew_certificate(self, resource_group): + response = self.client.replication_fabrics.begin_renew_certificate( + fabric_name="str", + renew_certificate={"properties": {"renewCertificateType": "str"}}, + api_version="2025-02-01", + ).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_replication_fabrics_begin_remove_infra(self, resource_group): + response = self.client.replication_fabrics.begin_remove_infra( + resource_name="str", + fabric_name="str", + api_version="2025-02-01", + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_fabrics_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_fabrics_operations_async.py new file mode 100644 index 000000000000..9a48a86d96be --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_fabrics_operations_async.py @@ -0,0 +1,157 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationFabricsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_fabrics_list(self, resource_group): + response = self.client.replication_fabrics.list( + api_version="2025-02-01", + ) + 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_replication_fabrics_get(self, resource_group): + response = await self.client.replication_fabrics.get( + fabric_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_fabrics_begin_create(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_create( + fabric_name="str", + input={"properties": {"customDetails": "fabric_specific_creation_input"}}, + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_purge(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_purge( + fabric_name="str", + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_check_consistency(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_check_consistency( + fabric_name="str", + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_migrate_to_aad(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_migrate_to_aad( + fabric_name="str", + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_reassociate_gateway(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_reassociate_gateway( + fabric_name="str", + failover_process_server_request={ + "properties": { + "containerName": "str", + "sourceProcessServerId": "str", + "targetProcessServerId": "str", + "updateType": "str", + "vmsToMigrate": ["str"], + } + }, + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_delete(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_delete( + fabric_name="str", + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_renew_certificate(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_renew_certificate( + fabric_name="str", + renew_certificate={"properties": {"renewCertificateType": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_fabrics_begin_remove_infra(self, resource_group): + response = await ( + await self.client.replication_fabrics.begin_remove_infra( + resource_name="str", + fabric_name="str", + api_version="2025-02-01", + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_jobs_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_jobs_operations.py new file mode 100644 index 000000000000..27381be5490f --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_jobs_operations.py @@ -0,0 +1,94 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationJobsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_jobs_list(self, resource_group): + response = self.client.replication_jobs.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_jobs_get(self, resource_group): + response = self.client.replication_jobs.get( + job_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_jobs_begin_cancel(self, resource_group): + response = self.client.replication_jobs.begin_cancel( + job_name="str", + api_version="2025-02-01", + ).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_replication_jobs_begin_restart(self, resource_group): + response = self.client.replication_jobs.begin_restart( + job_name="str", + api_version="2025-02-01", + ).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_replication_jobs_begin_resume(self, resource_group): + response = self.client.replication_jobs.begin_resume( + job_name="str", + resume_job_params={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ).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_replication_jobs_begin_export(self, resource_group): + response = self.client.replication_jobs.begin_export( + job_query_parameter={ + "affectedObjectTypes": "str", + "endTime": "str", + "fabricId": "str", + "jobName": "str", + "jobOutputType": "str", + "jobStatus": "str", + "startTime": "str", + "timezoneOffset": 0.0, + }, + api_version="2025-02-01", + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_jobs_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_jobs_operations_async.py new file mode 100644 index 000000000000..7b647c9cbc8e --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_jobs_operations_async.py @@ -0,0 +1,103 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationJobsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_jobs_list(self, resource_group): + response = self.client.replication_jobs.list( + api_version="2025-02-01", + ) + 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_replication_jobs_get(self, resource_group): + response = await self.client.replication_jobs.get( + job_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_jobs_begin_cancel(self, resource_group): + response = await ( + await self.client.replication_jobs.begin_cancel( + job_name="str", + api_version="2025-02-01", + ) + ).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_replication_jobs_begin_restart(self, resource_group): + response = await ( + await self.client.replication_jobs.begin_restart( + job_name="str", + api_version="2025-02-01", + ) + ).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_replication_jobs_begin_resume(self, resource_group): + response = await ( + await self.client.replication_jobs.begin_resume( + job_name="str", + resume_job_params={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_jobs_begin_export(self, resource_group): + response = await ( + await self.client.replication_jobs.begin_export( + job_query_parameter={ + "affectedObjectTypes": "str", + "endTime": "str", + "fabricId": "str", + "jobName": "str", + "jobOutputType": "str", + "jobStatus": "str", + "startTime": "str", + "timezoneOffset": 0.0, + }, + api_version="2025-02-01", + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_logical_networks_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_logical_networks_operations.py new file mode 100644 index 000000000000..091187dbcb3c --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_logical_networks_operations.py @@ -0,0 +1,42 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationLogicalNetworksOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_logical_networks_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_logical_networks.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_logical_networks_get(self, resource_group): + response = self.client.replication_logical_networks.get( + fabric_name="str", + logical_network_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_logical_networks_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_logical_networks_operations_async.py new file mode 100644 index 000000000000..b4a625475dcf --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_logical_networks_operations_async.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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationLogicalNetworksOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_logical_networks_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_logical_networks.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + 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_replication_logical_networks_get(self, resource_group): + response = await self.client.replication_logical_networks.get( + fabric_name="str", + logical_network_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_migration_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_migration_items_operations.py new file mode 100644 index 000000000000..4f8ab52210ce --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_migration_items_operations.py @@ -0,0 +1,183 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationMigrationItemsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_migration_items_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_migration_items.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_migration_items_get(self, resource_group): + response = self.client.replication_migration_items.get( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_migration_items_begin_create(self, resource_group): + response = self.client.replication_migration_items.begin_create( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + input={ + "properties": {"policyId": "str", "providerSpecificDetails": "enable_migration_provider_specific_input"} + }, + api_version="2025-02-01", + ).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_replication_migration_items_begin_delete(self, resource_group): + response = self.client.replication_migration_items.begin_delete( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + api_version="2025-02-01", + ).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_replication_migration_items_begin_update(self, resource_group): + response = self.client.replication_migration_items.begin_update( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + input={"properties": {"providerSpecificDetails": "update_migration_item_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_migration_items_begin_migrate(self, resource_group): + response = self.client.replication_migration_items.begin_migrate( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + migrate_input={"properties": {"providerSpecificDetails": "migrate_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_migration_items_begin_pause_replication(self, resource_group): + response = self.client.replication_migration_items.begin_pause_replication( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + pause_replication_input={"properties": {"instanceType": "str"}}, + api_version="2025-02-01", + ).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_replication_migration_items_begin_resume_replication(self, resource_group): + response = self.client.replication_migration_items.begin_resume_replication( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + resume_replication_input={ + "properties": {"providerSpecificDetails": "resume_replication_provider_specific_input"} + }, + api_version="2025-02-01", + ).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_replication_migration_items_begin_resync(self, resource_group): + response = self.client.replication_migration_items.begin_resync( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + input={"properties": {"providerSpecificDetails": "resync_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_migration_items_begin_test_migrate(self, resource_group): + response = self.client.replication_migration_items.begin_test_migrate( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + test_migrate_input={"properties": {"providerSpecificDetails": "test_migrate_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_migration_items_begin_test_migrate_cleanup(self, resource_group): + response = self.client.replication_migration_items.begin_test_migrate_cleanup( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + test_migrate_cleanup_input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ).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_replication_migration_items_list(self, resource_group): + response = self.client.replication_migration_items.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_migration_items_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_migration_items_operations_async.py new file mode 100644 index 000000000000..eee1261fed38 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_migration_items_operations_async.py @@ -0,0 +1,205 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationMigrationItemsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_migration_items_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_migration_items.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + 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_replication_migration_items_get(self, resource_group): + response = await self.client.replication_migration_items.get( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_migration_items_begin_create(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_create( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + input={ + "properties": { + "policyId": "str", + "providerSpecificDetails": "enable_migration_provider_specific_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_delete(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_delete( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_update(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_update( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + input={"properties": {"providerSpecificDetails": "update_migration_item_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_migrate(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_migrate( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + migrate_input={"properties": {"providerSpecificDetails": "migrate_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_pause_replication(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_pause_replication( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + pause_replication_input={"properties": {"instanceType": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_resume_replication(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_resume_replication( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + resume_replication_input={ + "properties": {"providerSpecificDetails": "resume_replication_provider_specific_input"} + }, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_resync(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_resync( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + input={"properties": {"providerSpecificDetails": "resync_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_test_migrate(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_test_migrate( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + test_migrate_input={"properties": {"providerSpecificDetails": "test_migrate_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_migration_items_begin_test_migrate_cleanup(self, resource_group): + response = await ( + await self.client.replication_migration_items.begin_test_migrate_cleanup( + fabric_name="str", + protection_container_name="str", + migration_item_name="str", + test_migrate_cleanup_input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_migration_items_list(self, resource_group): + response = self.client.replication_migration_items.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_network_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_network_mappings_operations.py new file mode 100644 index 000000000000..4db4bfba277e --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_network_mappings_operations.py @@ -0,0 +1,107 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationNetworkMappingsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_network_mappings_list_by_replication_networks(self, resource_group): + response = self.client.replication_network_mappings.list_by_replication_networks( + fabric_name="str", + network_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_network_mappings_get(self, resource_group): + response = self.client.replication_network_mappings.get( + fabric_name="str", + network_name="str", + network_mapping_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_network_mappings_begin_create(self, resource_group): + response = self.client.replication_network_mappings.begin_create( + fabric_name="str", + network_name="str", + network_mapping_name="str", + input={ + "properties": { + "recoveryNetworkId": "str", + "fabricSpecificDetails": "fabric_specific_create_network_mapping_input", + "recoveryFabricName": "str", + } + }, + api_version="2025-02-01", + ).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_replication_network_mappings_begin_delete(self, resource_group): + response = self.client.replication_network_mappings.begin_delete( + fabric_name="str", + network_name="str", + network_mapping_name="str", + api_version="2025-02-01", + ).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_replication_network_mappings_begin_update(self, resource_group): + response = self.client.replication_network_mappings.begin_update( + fabric_name="str", + network_name="str", + network_mapping_name="str", + input={ + "properties": { + "fabricSpecificDetails": "fabric_specific_update_network_mapping_input", + "recoveryFabricName": "str", + "recoveryNetworkId": "str", + } + }, + api_version="2025-02-01", + ).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_replication_network_mappings_list(self, resource_group): + response = self.client.replication_network_mappings.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_network_mappings_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_network_mappings_operations_async.py new file mode 100644 index 000000000000..0264d995b997 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_network_mappings_operations_async.py @@ -0,0 +1,114 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationNetworkMappingsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_network_mappings_list_by_replication_networks(self, resource_group): + response = self.client.replication_network_mappings.list_by_replication_networks( + fabric_name="str", + network_name="str", + api_version="2025-02-01", + ) + 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_replication_network_mappings_get(self, resource_group): + response = await self.client.replication_network_mappings.get( + fabric_name="str", + network_name="str", + network_mapping_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_network_mappings_begin_create(self, resource_group): + response = await ( + await self.client.replication_network_mappings.begin_create( + fabric_name="str", + network_name="str", + network_mapping_name="str", + input={ + "properties": { + "recoveryNetworkId": "str", + "fabricSpecificDetails": "fabric_specific_create_network_mapping_input", + "recoveryFabricName": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_network_mappings_begin_delete(self, resource_group): + response = await ( + await self.client.replication_network_mappings.begin_delete( + fabric_name="str", + network_name="str", + network_mapping_name="str", + api_version="2025-02-01", + ) + ).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_replication_network_mappings_begin_update(self, resource_group): + response = await ( + await self.client.replication_network_mappings.begin_update( + fabric_name="str", + network_name="str", + network_mapping_name="str", + input={ + "properties": { + "fabricSpecificDetails": "fabric_specific_update_network_mapping_input", + "recoveryFabricName": "str", + "recoveryNetworkId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_network_mappings_list(self, resource_group): + response = self.client.replication_network_mappings.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_networks_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_networks_operations.py new file mode 100644 index 000000000000..2d0c96fd2983 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_networks_operations.py @@ -0,0 +1,52 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationNetworksOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_networks_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_networks.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_networks_get(self, resource_group): + response = self.client.replication_networks.get( + fabric_name="str", + network_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_networks_list(self, resource_group): + response = self.client.replication_networks.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_networks_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_networks_operations_async.py new file mode 100644 index 000000000000..61139f2bc1d4 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_networks_operations_async.py @@ -0,0 +1,53 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationNetworksOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_networks_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_networks.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + 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_replication_networks_get(self, resource_group): + response = await self.client.replication_networks.get( + fabric_name="str", + network_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_networks_list(self, resource_group): + response = self.client.replication_networks.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_policies_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_policies_operations.py new file mode 100644 index 000000000000..dbb710e2efea --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_policies_operations.py @@ -0,0 +1,75 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationPoliciesOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_policies_list(self, resource_group): + response = self.client.replication_policies.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_policies_get(self, resource_group): + response = self.client.replication_policies.get( + policy_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_policies_begin_create(self, resource_group): + response = self.client.replication_policies.begin_create( + policy_name="str", + input={"properties": {"providerSpecificInput": "policy_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_policies_begin_delete(self, resource_group): + response = self.client.replication_policies.begin_delete( + policy_name="str", + api_version="2025-02-01", + ).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_replication_policies_begin_update(self, resource_group): + response = self.client.replication_policies.begin_update( + policy_name="str", + input={"properties": {"replicationProviderSettings": "policy_provider_specific_input"}}, + api_version="2025-02-01", + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_policies_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_policies_operations_async.py new file mode 100644 index 000000000000..53dd82e1b2f9 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_policies_operations_async.py @@ -0,0 +1,82 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationPoliciesOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_policies_list(self, resource_group): + response = self.client.replication_policies.list( + api_version="2025-02-01", + ) + 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_replication_policies_get(self, resource_group): + response = await self.client.replication_policies.get( + policy_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_policies_begin_create(self, resource_group): + response = await ( + await self.client.replication_policies.begin_create( + policy_name="str", + input={"properties": {"providerSpecificInput": "policy_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_policies_begin_delete(self, resource_group): + response = await ( + await self.client.replication_policies.begin_delete( + policy_name="str", + api_version="2025-02-01", + ) + ).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_replication_policies_begin_update(self, resource_group): + response = await ( + await self.client.replication_policies.begin_update( + policy_name="str", + input={"properties": {"replicationProviderSettings": "policy_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protectable_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protectable_items_operations.py new file mode 100644 index 000000000000..895e6fc2b0a7 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protectable_items_operations.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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectableItemsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protectable_items_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protectable_items.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protectable_items_get(self, resource_group): + response = self.client.replication_protectable_items.get( + fabric_name="str", + protection_container_name="str", + protectable_item_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protectable_items_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protectable_items_operations_async.py new file mode 100644 index 000000000000..8c5fc1d20604 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protectable_items_operations_async.py @@ -0,0 +1,45 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectableItemsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protectable_items_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protectable_items.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + 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_replication_protectable_items_get(self, resource_group): + response = await self.client.replication_protectable_items.get( + fabric_name="str", + protection_container_name="str", + protectable_item_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protected_items_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protected_items_operations.py new file mode 100644 index 000000000000..5139c2bb1f28 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protected_items_operations.py @@ -0,0 +1,407 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectedItemsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protected_items_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protected_items.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protected_items_get(self, resource_group): + response = self.client.replication_protected_items.get( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protected_items_begin_create(self, resource_group): + response = self.client.replication_protected_items.begin_create( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + input={ + "properties": { + "policyId": "str", + "protectableItemId": "str", + "providerSpecificDetails": "enable_protection_provider_specific_input", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_purge(self, resource_group): + response = self.client.replication_protected_items.begin_purge( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ).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_replication_protected_items_begin_update(self, resource_group): + response = self.client.replication_protected_items.begin_update( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + update_protection_input={ + "properties": { + "enableRdpOnTargetOption": "str", + "licenseType": "str", + "providerSpecificDetails": "update_replication_protected_item_provider_input", + "recoveryAvailabilitySetId": "str", + "recoveryAzureVMName": "str", + "recoveryAzureVMSize": "str", + "selectedRecoveryAzureNetworkId": "str", + "selectedSourceNicId": "str", + "selectedTfoAzureNetworkId": "str", + "vmNics": [ + { + "enableAcceleratedNetworkingOnRecovery": bool, + "enableAcceleratedNetworkingOnTfo": bool, + "ipConfigs": [ + { + "ipConfigName": "str", + "isPrimary": bool, + "isSeletedForFailover": bool, + "recoveryLBBackendAddressPoolIds": ["str"], + "recoveryPublicIPAddressId": "str", + "recoveryStaticIPAddress": "str", + "recoverySubnetName": "str", + "tfoLBBackendAddressPoolIds": ["str"], + "tfoPublicIPAddressId": "str", + "tfoStaticIPAddress": "str", + "tfoSubnetName": "str", + } + ], + "nicId": "str", + "recoveryNetworkSecurityGroupId": "str", + "recoveryNicName": "str", + "recoveryNicResourceGroupName": "str", + "reuseExistingNic": bool, + "selectionType": "str", + "targetNicName": "str", + "tfoNetworkSecurityGroupId": "str", + "tfoNicName": "str", + "tfoNicResourceGroupName": "str", + "tfoReuseExistingNic": bool, + } + ], + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_add_disks(self, resource_group): + response = self.client.replication_protected_items.begin_add_disks( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + add_disks_input={"properties": {"providerSpecificDetails": "add_disks_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_protected_items_begin_apply_recovery_point(self, resource_group): + response = self.client.replication_protected_items.begin_apply_recovery_point( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + apply_recovery_point_input={ + "properties": { + "providerSpecificDetails": "apply_recovery_point_provider_specific_input", + "recoveryPointId": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_failover_cancel(self, resource_group): + response = self.client.replication_protected_items.begin_failover_cancel( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ).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_replication_protected_items_begin_failover_commit(self, resource_group): + response = self.client.replication_protected_items.begin_failover_commit( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ).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_replication_protected_items_begin_planned_failover(self, resource_group): + response = self.client.replication_protected_items.begin_planned_failover( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "planned_failover_provider_specific_failover_input", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_delete(self, resource_group): + response = self.client.replication_protected_items.begin_delete( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + disable_protection_input={ + "properties": { + "disableProtectionReason": "str", + "replicationProviderInput": "disable_protection_provider_specific_input", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_remove_disks(self, resource_group): + response = self.client.replication_protected_items.begin_remove_disks( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + remove_disks_input={"properties": {"providerSpecificDetails": "remove_disks_provider_specific_input"}}, + api_version="2025-02-01", + ).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_replication_protected_items_begin_repair_replication(self, resource_group): + response = self.client.replication_protected_items.begin_repair_replication( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ).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_replication_protected_items_begin_reprotect(self, resource_group): + response = self.client.replication_protected_items.begin_reprotect( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + reprotect_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "reverse_replication_provider_specific_input", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_resolve_health_errors(self, resource_group): + response = self.client.replication_protected_items.begin_resolve_health_errors( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + resolve_health_input={"properties": {"healthErrors": [{"healthErrorId": "str"}]}}, + api_version="2025-02-01", + ).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_replication_protected_items_begin_switch_provider(self, resource_group): + response = self.client.replication_protected_items.begin_switch_provider( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + switch_provider_input={ + "properties": {"providerSpecificDetails": "switch_provider_specific_input", "targetInstanceType": "str"} + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_test_failover(self, resource_group): + response = self.client.replication_protected_items.begin_test_failover( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + testfailover_input={ + "properties": { + "failoverDirection": "str", + "networkId": "str", + "networkType": "str", + "providerSpecificDetails": "test_failover_provider_specific_input", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_test_failover_cleanup(self, resource_group): + response = self.client.replication_protected_items.begin_test_failover_cleanup( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + cleanup_input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ).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_replication_protected_items_begin_unplanned_failover(self, resource_group): + response = self.client.replication_protected_items.begin_unplanned_failover( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "unplanned_failover_provider_specific_input", + "sourceSiteOperations": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_update_appliance(self, resource_group): + response = self.client.replication_protected_items.begin_update_appliance( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + appliance_update_input={ + "properties": { + "providerSpecificDetails": "update_appliance_for_replication_protected_item_provider_specific_input", + "targetApplianceId": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protected_items_begin_update_mobility_service(self, resource_group): + response = self.client.replication_protected_items.begin_update_mobility_service( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + update_mobility_service_request={"properties": {"runAsAccountId": "str"}}, + api_version="2025-02-01", + ).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_replication_protected_items_list(self, resource_group): + response = self.client.replication_protected_items.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protected_items_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protected_items_operations_async.py new file mode 100644 index 000000000000..acd74232f182 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protected_items_operations_async.py @@ -0,0 +1,449 @@ +# pylint: disable=line-too-long,useless-suppression +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectedItemsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protected_items_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protected_items.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + 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_replication_protected_items_get(self, resource_group): + response = await self.client.replication_protected_items.get( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protected_items_begin_create(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_create( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + input={ + "properties": { + "policyId": "str", + "protectableItemId": "str", + "providerSpecificDetails": "enable_protection_provider_specific_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_purge(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_purge( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_update(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_update( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + update_protection_input={ + "properties": { + "enableRdpOnTargetOption": "str", + "licenseType": "str", + "providerSpecificDetails": "update_replication_protected_item_provider_input", + "recoveryAvailabilitySetId": "str", + "recoveryAzureVMName": "str", + "recoveryAzureVMSize": "str", + "selectedRecoveryAzureNetworkId": "str", + "selectedSourceNicId": "str", + "selectedTfoAzureNetworkId": "str", + "vmNics": [ + { + "enableAcceleratedNetworkingOnRecovery": bool, + "enableAcceleratedNetworkingOnTfo": bool, + "ipConfigs": [ + { + "ipConfigName": "str", + "isPrimary": bool, + "isSeletedForFailover": bool, + "recoveryLBBackendAddressPoolIds": ["str"], + "recoveryPublicIPAddressId": "str", + "recoveryStaticIPAddress": "str", + "recoverySubnetName": "str", + "tfoLBBackendAddressPoolIds": ["str"], + "tfoPublicIPAddressId": "str", + "tfoStaticIPAddress": "str", + "tfoSubnetName": "str", + } + ], + "nicId": "str", + "recoveryNetworkSecurityGroupId": "str", + "recoveryNicName": "str", + "recoveryNicResourceGroupName": "str", + "reuseExistingNic": bool, + "selectionType": "str", + "targetNicName": "str", + "tfoNetworkSecurityGroupId": "str", + "tfoNicName": "str", + "tfoNicResourceGroupName": "str", + "tfoReuseExistingNic": bool, + } + ], + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_add_disks(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_add_disks( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + add_disks_input={"properties": {"providerSpecificDetails": "add_disks_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_apply_recovery_point(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_apply_recovery_point( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + apply_recovery_point_input={ + "properties": { + "providerSpecificDetails": "apply_recovery_point_provider_specific_input", + "recoveryPointId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_failover_cancel(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_failover_cancel( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_failover_commit(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_failover_commit( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_planned_failover(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_planned_failover( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "planned_failover_provider_specific_failover_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_delete(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_delete( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + disable_protection_input={ + "properties": { + "disableProtectionReason": "str", + "replicationProviderInput": "disable_protection_provider_specific_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_remove_disks(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_remove_disks( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + remove_disks_input={"properties": {"providerSpecificDetails": "remove_disks_provider_specific_input"}}, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_repair_replication(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_repair_replication( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_reprotect(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_reprotect( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + reprotect_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "reverse_replication_provider_specific_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_resolve_health_errors(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_resolve_health_errors( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + resolve_health_input={"properties": {"healthErrors": [{"healthErrorId": "str"}]}}, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_switch_provider(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_switch_provider( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + switch_provider_input={ + "properties": { + "providerSpecificDetails": "switch_provider_specific_input", + "targetInstanceType": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_test_failover(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_test_failover( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + testfailover_input={ + "properties": { + "failoverDirection": "str", + "networkId": "str", + "networkType": "str", + "providerSpecificDetails": "test_failover_provider_specific_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_test_failover_cleanup(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_test_failover_cleanup( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + cleanup_input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_unplanned_failover(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_unplanned_failover( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "unplanned_failover_provider_specific_input", + "sourceSiteOperations": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_update_appliance(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_update_appliance( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + appliance_update_input={ + "properties": { + "providerSpecificDetails": "update_appliance_for_replication_protected_item_provider_specific_input", + "targetApplianceId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protected_items_begin_update_mobility_service(self, resource_group): + response = await ( + await self.client.replication_protected_items.begin_update_mobility_service( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + update_mobility_service_request={"properties": {"runAsAccountId": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_protected_items_list(self, resource_group): + response = self.client.replication_protected_items.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_clusters_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_clusters_operations.py new file mode 100644 index 000000000000..3d822c2222c6 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_clusters_operations.py @@ -0,0 +1,323 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionClustersOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_clusters_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protection_clusters.list_by_replication_protection_containers( + resource_name="str", + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_clusters_get(self, resource_group): + response = self.client.replication_protection_clusters.get( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_clusters_begin_create(self, resource_group): + response = self.client.replication_protection_clusters.begin_create( + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + replication_protection_cluster={ + "id": "str", + "name": "str", + "properties": { + "activeLocation": "str", + "agentClusterId": "str", + "allowedOperations": ["str"], + "areAllClusterNodesRegistered": bool, + "clusterFqdn": "str", + "clusterNodeFqdns": ["str"], + "clusterProtectedItemIds": ["str"], + "clusterRegisteredNodes": [ + {"biosId": "str", "clusterNodeFqdn": "str", "isSharedDiskVirtualNode": bool, "machineId": "str"} + ], + "currentScenario": {"jobId": "str", "scenarioName": "str", "startTime": "2020-02-20 00:00:00"}, + "healthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "innerHealthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "lastSuccessfulFailoverTime": "2020-02-20 00:00:00", + "lastSuccessfulTestFailoverTime": "2020-02-20 00:00:00", + "policyFriendlyName": "str", + "policyId": "str", + "primaryFabricFriendlyName": "str", + "primaryFabricProvider": "str", + "primaryProtectionContainerFriendlyName": "str", + "protectionClusterType": "str", + "protectionState": "str", + "protectionStateDescription": "str", + "providerSpecificDetails": "replication_cluster_provider_specific_settings", + "provisioningState": "str", + "recoveryContainerId": "str", + "recoveryFabricFriendlyName": "str", + "recoveryFabricId": "str", + "recoveryProtectionContainerFriendlyName": "str", + "replicationHealth": "str", + "sharedDiskProperties": { + "activeLocation": "str", + "allowedOperations": ["str"], + "currentScenario": {"jobId": "str", "scenarioName": "str", "startTime": "2020-02-20 00:00:00"}, + "healthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "innerHealthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "protectionState": "str", + "replicationHealth": "str", + "sharedDiskProviderSpecificDetails": "shared_disk_replication_provider_specific_settings", + "testFailoverState": "str", + }, + "testFailoverState": "str", + "testFailoverStateDescription": "str", + }, + "type": "str", + }, + api_version="2025-02-01", + ).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_replication_protection_clusters_begin_purge(self, resource_group): + response = self.client.replication_protection_clusters.begin_purge( + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ).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_replication_protection_clusters_begin_apply_recovery_point(self, resource_group): + response = self.client.replication_protection_clusters.begin_apply_recovery_point( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + apply_cluster_recovery_point_input={ + "properties": { + "providerSpecificDetails": "apply_cluster_recovery_point_provider_specific_input", + "clusterRecoveryPointId": "str", + "individualNodeRecoveryPoints": ["str"], + } + }, + api_version="2025-02-01", + ).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_replication_protection_clusters_begin_failover_commit(self, resource_group): + response = self.client.replication_protection_clusters.begin_failover_commit( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ).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_replication_protection_clusters_get_operation_results(self, resource_group): + response = self.client.replication_protection_clusters.get_operation_results( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + job_id="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_clusters_begin_repair_replication(self, resource_group): + response = self.client.replication_protection_clusters.begin_repair_replication( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ).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_replication_protection_clusters_begin_test_failover(self, resource_group): + response = self.client.replication_protection_clusters.begin_test_failover( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "networkId": "str", + "networkType": "str", + "providerSpecificDetails": "cluster_test_failover_provider_specific_input", + } + }, + api_version="2025-02-01", + ).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_replication_protection_clusters_begin_test_failover_cleanup(self, resource_group): + response = self.client.replication_protection_clusters.begin_test_failover_cleanup( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + cleanup_input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ).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_replication_protection_clusters_begin_unplanned_failover(self, resource_group): + response = self.client.replication_protection_clusters.begin_unplanned_failover( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "cluster_unplanned_failover_provider_specific_input", + "sourceSiteOperations": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protection_clusters_list(self, resource_group): + response = self.client.replication_protection_clusters.list( + resource_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_clusters_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_clusters_operations_async.py new file mode 100644 index 000000000000..a0368adb5c3c --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_clusters_operations_async.py @@ -0,0 +1,349 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionClustersOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_clusters_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protection_clusters.list_by_replication_protection_containers( + resource_name="str", + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + 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_replication_protection_clusters_get(self, resource_group): + response = await self.client.replication_protection_clusters.get( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_clusters_begin_create(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_create( + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + replication_protection_cluster={ + "id": "str", + "name": "str", + "properties": { + "activeLocation": "str", + "agentClusterId": "str", + "allowedOperations": ["str"], + "areAllClusterNodesRegistered": bool, + "clusterFqdn": "str", + "clusterNodeFqdns": ["str"], + "clusterProtectedItemIds": ["str"], + "clusterRegisteredNodes": [ + { + "biosId": "str", + "clusterNodeFqdn": "str", + "isSharedDiskVirtualNode": bool, + "machineId": "str", + } + ], + "currentScenario": {"jobId": "str", "scenarioName": "str", "startTime": "2020-02-20 00:00:00"}, + "healthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "innerHealthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "lastSuccessfulFailoverTime": "2020-02-20 00:00:00", + "lastSuccessfulTestFailoverTime": "2020-02-20 00:00:00", + "policyFriendlyName": "str", + "policyId": "str", + "primaryFabricFriendlyName": "str", + "primaryFabricProvider": "str", + "primaryProtectionContainerFriendlyName": "str", + "protectionClusterType": "str", + "protectionState": "str", + "protectionStateDescription": "str", + "providerSpecificDetails": "replication_cluster_provider_specific_settings", + "provisioningState": "str", + "recoveryContainerId": "str", + "recoveryFabricFriendlyName": "str", + "recoveryFabricId": "str", + "recoveryProtectionContainerFriendlyName": "str", + "replicationHealth": "str", + "sharedDiskProperties": { + "activeLocation": "str", + "allowedOperations": ["str"], + "currentScenario": { + "jobId": "str", + "scenarioName": "str", + "startTime": "2020-02-20 00:00:00", + }, + "healthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "innerHealthErrors": [ + { + "creationTimeUtc": "2020-02-20 00:00:00", + "customerResolvability": "str", + "entityId": "str", + "errorCategory": "str", + "errorCode": "str", + "errorId": "str", + "errorLevel": "str", + "errorMessage": "str", + "errorSource": "str", + "errorType": "str", + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "possibleCauses": "str", + "recommendedAction": "str", + "recoveryProviderErrorMessage": "str", + "summaryMessage": "str", + } + ], + "protectionState": "str", + "replicationHealth": "str", + "sharedDiskProviderSpecificDetails": "shared_disk_replication_provider_specific_settings", + "testFailoverState": "str", + }, + "testFailoverState": "str", + "testFailoverStateDescription": "str", + }, + "type": "str", + }, + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_begin_purge(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_purge( + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_begin_apply_recovery_point(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_apply_recovery_point( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + apply_cluster_recovery_point_input={ + "properties": { + "providerSpecificDetails": "apply_cluster_recovery_point_provider_specific_input", + "clusterRecoveryPointId": "str", + "individualNodeRecoveryPoints": ["str"], + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_begin_failover_commit(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_failover_commit( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_get_operation_results(self, resource_group): + response = await self.client.replication_protection_clusters.get_operation_results( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + job_id="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_clusters_begin_repair_replication(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_repair_replication( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_begin_test_failover(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_test_failover( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "networkId": "str", + "networkType": "str", + "providerSpecificDetails": "cluster_test_failover_provider_specific_input", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_begin_test_failover_cleanup(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_test_failover_cleanup( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + cleanup_input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_begin_unplanned_failover(self, resource_group): + response = await ( + await self.client.replication_protection_clusters.begin_unplanned_failover( + resource_name="str", + fabric_name="str", + protection_container_name="str", + replication_protection_cluster_name="str", + failover_input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": "cluster_unplanned_failover_provider_specific_input", + "sourceSiteOperations": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_clusters_list(self, resource_group): + response = self.client.replication_protection_clusters.list( + resource_name="str", + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_container_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_container_mappings_operations.py new file mode 100644 index 000000000000..7db77117493b --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_container_mappings_operations.py @@ -0,0 +1,117 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionContainerMappingsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_container_mappings_list_by_replication_protection_containers(self, resource_group): + response = self.client.replication_protection_container_mappings.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_container_mappings_get(self, resource_group): + response = self.client.replication_protection_container_mappings.get( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_container_mappings_begin_create(self, resource_group): + response = self.client.replication_protection_container_mappings.begin_create( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + creation_input={ + "properties": { + "policyId": "str", + "providerSpecificInput": "replication_provider_specific_container_mapping_input", + "targetProtectionContainerId": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protection_container_mappings_begin_purge(self, resource_group): + response = self.client.replication_protection_container_mappings.begin_purge( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + api_version="2025-02-01", + ).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_replication_protection_container_mappings_begin_update(self, resource_group): + response = self.client.replication_protection_container_mappings.begin_update( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + update_input={ + "properties": {"providerSpecificInput": "replication_provider_specific_update_container_mapping_input"} + }, + api_version="2025-02-01", + ).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_replication_protection_container_mappings_begin_delete(self, resource_group): + response = self.client.replication_protection_container_mappings.begin_delete( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + removal_input={"properties": {"providerSpecificInput": {"instanceType": "str"}}}, + api_version="2025-02-01", + ).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_replication_protection_container_mappings_list(self, resource_group): + response = self.client.replication_protection_container_mappings.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_container_mappings_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_container_mappings_operations_async.py new file mode 100644 index 000000000000..36667d9ceeec --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_container_mappings_operations_async.py @@ -0,0 +1,130 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionContainerMappingsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_container_mappings_list_by_replication_protection_containers( + self, resource_group + ): + response = self.client.replication_protection_container_mappings.list_by_replication_protection_containers( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + 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_replication_protection_container_mappings_get(self, resource_group): + response = await self.client.replication_protection_container_mappings.get( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_container_mappings_begin_create(self, resource_group): + response = await ( + await self.client.replication_protection_container_mappings.begin_create( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + creation_input={ + "properties": { + "policyId": "str", + "providerSpecificInput": "replication_provider_specific_container_mapping_input", + "targetProtectionContainerId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_container_mappings_begin_purge(self, resource_group): + response = await ( + await self.client.replication_protection_container_mappings.begin_purge( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + api_version="2025-02-01", + ) + ).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_replication_protection_container_mappings_begin_update(self, resource_group): + response = await ( + await self.client.replication_protection_container_mappings.begin_update( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + update_input={ + "properties": { + "providerSpecificInput": "replication_provider_specific_update_container_mapping_input" + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_container_mappings_begin_delete(self, resource_group): + response = await ( + await self.client.replication_protection_container_mappings.begin_delete( + fabric_name="str", + protection_container_name="str", + mapping_name="str", + removal_input={"properties": {"providerSpecificInput": {"instanceType": "str"}}}, + api_version="2025-02-01", + ) + ).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_replication_protection_container_mappings_list(self, resource_group): + response = self.client.replication_protection_container_mappings.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_containers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_containers_operations.py new file mode 100644 index 000000000000..ba98590b9138 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_containers_operations.py @@ -0,0 +1,131 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionContainersOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_containers_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_protection_containers.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_containers_get(self, resource_group): + response = self.client.replication_protection_containers.get( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_containers_begin_create(self, resource_group): + response = self.client.replication_protection_containers.begin_create( + fabric_name="str", + protection_container_name="str", + creation_input={ + "properties": {"providerSpecificInput": ["replication_provider_specific_container_creation_input"]} + }, + api_version="2025-02-01", + ).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_replication_protection_containers_begin_discover_protectable_item(self, resource_group): + response = self.client.replication_protection_containers.begin_discover_protectable_item( + fabric_name="str", + protection_container_name="str", + discover_protectable_item_request={ + "properties": {"friendlyName": "str", "ipAddress": "str", "osType": "str"} + }, + api_version="2025-02-01", + ).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_replication_protection_containers_begin_delete(self, resource_group): + response = self.client.replication_protection_containers.begin_delete( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ).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_replication_protection_containers_begin_switch_cluster_protection(self, resource_group): + response = self.client.replication_protection_containers.begin_switch_cluster_protection( + resource_name="str", + fabric_name="str", + protection_container_name="str", + switch_input={ + "properties": { + "providerSpecificDetails": "switch_cluster_protection_provider_specific_input", + "replicationProtectionClusterName": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protection_containers_begin_switch_protection(self, resource_group): + response = self.client.replication_protection_containers.begin_switch_protection( + fabric_name="str", + protection_container_name="str", + switch_input={ + "properties": { + "providerSpecificDetails": "switch_protection_provider_specific_input", + "replicationProtectedItemName": "str", + } + }, + api_version="2025-02-01", + ).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_replication_protection_containers_list(self, resource_group): + response = self.client.replication_protection_containers.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_containers_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_containers_operations_async.py new file mode 100644 index 000000000000..8ed124a843fa --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_containers_operations_async.py @@ -0,0 +1,142 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionContainersOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_containers_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_protection_containers.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + 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_replication_protection_containers_get(self, resource_group): + response = await self.client.replication_protection_containers.get( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_containers_begin_create(self, resource_group): + response = await ( + await self.client.replication_protection_containers.begin_create( + fabric_name="str", + protection_container_name="str", + creation_input={ + "properties": {"providerSpecificInput": ["replication_provider_specific_container_creation_input"]} + }, + api_version="2025-02-01", + ) + ).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_replication_protection_containers_begin_discover_protectable_item(self, resource_group): + response = await ( + await self.client.replication_protection_containers.begin_discover_protectable_item( + fabric_name="str", + protection_container_name="str", + discover_protectable_item_request={ + "properties": {"friendlyName": "str", "ipAddress": "str", "osType": "str"} + }, + api_version="2025-02-01", + ) + ).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_replication_protection_containers_begin_delete(self, resource_group): + response = await ( + await self.client.replication_protection_containers.begin_delete( + fabric_name="str", + protection_container_name="str", + api_version="2025-02-01", + ) + ).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_replication_protection_containers_begin_switch_cluster_protection(self, resource_group): + response = await ( + await self.client.replication_protection_containers.begin_switch_cluster_protection( + resource_name="str", + fabric_name="str", + protection_container_name="str", + switch_input={ + "properties": { + "providerSpecificDetails": "switch_cluster_protection_provider_specific_input", + "replicationProtectionClusterName": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_containers_begin_switch_protection(self, resource_group): + response = await ( + await self.client.replication_protection_containers.begin_switch_protection( + fabric_name="str", + protection_container_name="str", + switch_input={ + "properties": { + "providerSpecificDetails": "switch_protection_provider_specific_input", + "replicationProtectedItemName": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_protection_containers_list(self, resource_group): + response = self.client.replication_protection_containers.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_intents_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_intents_operations.py new file mode 100644 index 000000000000..fad05ff21f6f --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_intents_operations.py @@ -0,0 +1,52 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionIntentsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_intents_list(self, resource_group): + response = self.client.replication_protection_intents.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_intents_get(self, resource_group): + response = self.client.replication_protection_intents.get( + intent_object_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_protection_intents_create(self, resource_group): + response = self.client.replication_protection_intents.create( + intent_object_name="str", + input={"properties": {"providerSpecificDetails": "create_protection_intent_provider_specific_details"}}, + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_intents_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_intents_operations_async.py new file mode 100644 index 000000000000..90f754bf0718 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_protection_intents_operations_async.py @@ -0,0 +1,53 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationProtectionIntentsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_intents_list(self, resource_group): + response = self.client.replication_protection_intents.list( + api_version="2025-02-01", + ) + 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_replication_protection_intents_get(self, resource_group): + response = await self.client.replication_protection_intents.get( + intent_object_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_protection_intents_create(self, resource_group): + response = await self.client.replication_protection_intents.create( + intent_object_name="str", + input={"properties": {"providerSpecificDetails": "create_protection_intent_provider_specific_details"}}, + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_plans_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_plans_operations.py new file mode 100644 index 000000000000..f54e1441d757 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_plans_operations.py @@ -0,0 +1,228 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationRecoveryPlansOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_recovery_plans_list(self, resource_group): + response = self.client.replication_recovery_plans.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_recovery_plans_get(self, resource_group): + response = self.client.replication_recovery_plans.get( + recovery_plan_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_recovery_plans_begin_create(self, resource_group): + response = self.client.replication_recovery_plans.begin_create( + recovery_plan_name="str", + input={ + "properties": { + "groups": [ + { + "groupType": "str", + "endGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + "replicationProtectedItems": [{"id": "str", "virtualMachineId": "str"}], + "startGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + } + ], + "primaryFabricId": "str", + "recoveryFabricId": "str", + "failoverDeploymentModel": "str", + "providerSpecificInput": ["recovery_plan_provider_specific_input"], + } + }, + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_delete(self, resource_group): + response = self.client.replication_recovery_plans.begin_delete( + recovery_plan_name="str", + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_update(self, resource_group): + response = self.client.replication_recovery_plans.begin_update( + recovery_plan_name="str", + input={ + "properties": { + "groups": [ + { + "groupType": "str", + "endGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + "replicationProtectedItems": [{"id": "str", "virtualMachineId": "str"}], + "startGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + } + ] + } + }, + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_failover_cancel(self, resource_group): + response = self.client.replication_recovery_plans.begin_failover_cancel( + recovery_plan_name="str", + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_failover_commit(self, resource_group): + response = self.client.replication_recovery_plans.begin_failover_commit( + recovery_plan_name="str", + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_planned_failover(self, resource_group): + response = self.client.replication_recovery_plans.begin_planned_failover( + recovery_plan_name="str", + input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": ["recovery_plan_provider_specific_failover_input"], + } + }, + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_reprotect(self, resource_group): + response = self.client.replication_recovery_plans.begin_reprotect( + recovery_plan_name="str", + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_test_failover(self, resource_group): + response = self.client.replication_recovery_plans.begin_test_failover( + recovery_plan_name="str", + input={ + "properties": { + "failoverDirection": "str", + "networkType": "str", + "networkId": "str", + "providerSpecificDetails": ["recovery_plan_provider_specific_failover_input"], + } + }, + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_test_failover_cleanup(self, resource_group): + response = self.client.replication_recovery_plans.begin_test_failover_cleanup( + recovery_plan_name="str", + input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ).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_replication_recovery_plans_begin_unplanned_failover(self, resource_group): + response = self.client.replication_recovery_plans.begin_unplanned_failover( + recovery_plan_name="str", + input={ + "properties": { + "failoverDirection": "str", + "sourceSiteOperations": "str", + "providerSpecificDetails": ["recovery_plan_provider_specific_failover_input"], + } + }, + api_version="2025-02-01", + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_plans_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_plans_operations_async.py new file mode 100644 index 000000000000..f49cb39090e3 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_plans_operations_async.py @@ -0,0 +1,249 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationRecoveryPlansOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_recovery_plans_list(self, resource_group): + response = self.client.replication_recovery_plans.list( + api_version="2025-02-01", + ) + 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_replication_recovery_plans_get(self, resource_group): + response = await self.client.replication_recovery_plans.get( + recovery_plan_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_recovery_plans_begin_create(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_create( + recovery_plan_name="str", + input={ + "properties": { + "groups": [ + { + "groupType": "str", + "endGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + "replicationProtectedItems": [{"id": "str", "virtualMachineId": "str"}], + "startGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + } + ], + "primaryFabricId": "str", + "recoveryFabricId": "str", + "failoverDeploymentModel": "str", + "providerSpecificInput": ["recovery_plan_provider_specific_input"], + } + }, + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_delete(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_delete( + recovery_plan_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_update(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_update( + recovery_plan_name="str", + input={ + "properties": { + "groups": [ + { + "groupType": "str", + "endGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + "replicationProtectedItems": [{"id": "str", "virtualMachineId": "str"}], + "startGroupActions": [ + { + "actionName": "str", + "customDetails": "recovery_plan_action_details", + "failoverDirections": ["str"], + "failoverTypes": ["str"], + } + ], + } + ] + } + }, + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_failover_cancel(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_failover_cancel( + recovery_plan_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_failover_commit(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_failover_commit( + recovery_plan_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_planned_failover(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_planned_failover( + recovery_plan_name="str", + input={ + "properties": { + "failoverDirection": "str", + "providerSpecificDetails": ["recovery_plan_provider_specific_failover_input"], + } + }, + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_reprotect(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_reprotect( + recovery_plan_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_test_failover(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_test_failover( + recovery_plan_name="str", + input={ + "properties": { + "failoverDirection": "str", + "networkType": "str", + "networkId": "str", + "providerSpecificDetails": ["recovery_plan_provider_specific_failover_input"], + } + }, + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_test_failover_cleanup(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_test_failover_cleanup( + recovery_plan_name="str", + input={"properties": {"comments": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_recovery_plans_begin_unplanned_failover(self, resource_group): + response = await ( + await self.client.replication_recovery_plans.begin_unplanned_failover( + recovery_plan_name="str", + input={ + "properties": { + "failoverDirection": "str", + "sourceSiteOperations": "str", + "providerSpecificDetails": ["recovery_plan_provider_specific_failover_input"], + } + }, + api_version="2025-02-01", + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_services_providers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_services_providers_operations.py new file mode 100644 index 000000000000..e0de15acdaee --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_services_providers_operations.py @@ -0,0 +1,128 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationRecoveryServicesProvidersOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_recovery_services_providers_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_recovery_services_providers.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_recovery_services_providers_get(self, resource_group): + response = self.client.replication_recovery_services_providers.get( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_recovery_services_providers_begin_create(self, resource_group): + response = self.client.replication_recovery_services_providers.begin_create( + fabric_name="str", + provider_name="str", + add_provider_input={ + "properties": { + "authenticationIdentityInput": { + "aadAuthority": "str", + "applicationId": "str", + "audience": "str", + "objectId": "str", + "tenantId": "str", + }, + "machineName": "str", + "resourceAccessIdentityInput": { + "aadAuthority": "str", + "applicationId": "str", + "audience": "str", + "objectId": "str", + "tenantId": "str", + }, + "biosId": "str", + "dataPlaneAuthenticationIdentityInput": { + "aadAuthority": "str", + "applicationId": "str", + "audience": "str", + "objectId": "str", + "tenantId": "str", + }, + "machineId": "str", + } + }, + api_version="2025-02-01", + ).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_replication_recovery_services_providers_begin_purge(self, resource_group): + response = self.client.replication_recovery_services_providers.begin_purge( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ).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_replication_recovery_services_providers_begin_refresh_provider(self, resource_group): + response = self.client.replication_recovery_services_providers.begin_refresh_provider( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ).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_replication_recovery_services_providers_begin_delete(self, resource_group): + response = self.client.replication_recovery_services_providers.begin_delete( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ).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_replication_recovery_services_providers_list(self, resource_group): + response = self.client.replication_recovery_services_providers.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_services_providers_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_services_providers_operations_async.py new file mode 100644 index 000000000000..917a93ebfd84 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_recovery_services_providers_operations_async.py @@ -0,0 +1,137 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationRecoveryServicesProvidersOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_recovery_services_providers_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_recovery_services_providers.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + 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_replication_recovery_services_providers_get(self, resource_group): + response = await self.client.replication_recovery_services_providers.get( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_recovery_services_providers_begin_create(self, resource_group): + response = await ( + await self.client.replication_recovery_services_providers.begin_create( + fabric_name="str", + provider_name="str", + add_provider_input={ + "properties": { + "authenticationIdentityInput": { + "aadAuthority": "str", + "applicationId": "str", + "audience": "str", + "objectId": "str", + "tenantId": "str", + }, + "machineName": "str", + "resourceAccessIdentityInput": { + "aadAuthority": "str", + "applicationId": "str", + "audience": "str", + "objectId": "str", + "tenantId": "str", + }, + "biosId": "str", + "dataPlaneAuthenticationIdentityInput": { + "aadAuthority": "str", + "applicationId": "str", + "audience": "str", + "objectId": "str", + "tenantId": "str", + }, + "machineId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replication_recovery_services_providers_begin_purge(self, resource_group): + response = await ( + await self.client.replication_recovery_services_providers.begin_purge( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_services_providers_begin_refresh_provider(self, resource_group): + response = await ( + await self.client.replication_recovery_services_providers.begin_refresh_provider( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_services_providers_begin_delete(self, resource_group): + response = await ( + await self.client.replication_recovery_services_providers.begin_delete( + fabric_name="str", + provider_name="str", + api_version="2025-02-01", + ) + ).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_replication_recovery_services_providers_list(self, resource_group): + response = self.client.replication_recovery_services_providers.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classification_mappings_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classification_mappings_operations.py new file mode 100644 index 000000000000..098336a68fe9 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classification_mappings_operations.py @@ -0,0 +1,83 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationStorageClassificationMappingsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_storage_classification_mappings_list_by_replication_storage_classifications( + self, resource_group + ): + response = self.client.replication_storage_classification_mappings.list_by_replication_storage_classifications( + fabric_name="str", + storage_classification_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_storage_classification_mappings_get(self, resource_group): + response = self.client.replication_storage_classification_mappings.get( + fabric_name="str", + storage_classification_name="str", + storage_classification_mapping_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_storage_classification_mappings_begin_create(self, resource_group): + response = self.client.replication_storage_classification_mappings.begin_create( + fabric_name="str", + storage_classification_name="str", + storage_classification_mapping_name="str", + pairing_input={"properties": {"targetStorageClassificationId": "str"}}, + api_version="2025-02-01", + ).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_replication_storage_classification_mappings_begin_delete(self, resource_group): + response = self.client.replication_storage_classification_mappings.begin_delete( + fabric_name="str", + storage_classification_name="str", + storage_classification_mapping_name="str", + api_version="2025-02-01", + ).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_replication_storage_classification_mappings_list(self, resource_group): + response = self.client.replication_storage_classification_mappings.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classification_mappings_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classification_mappings_operations_async.py new file mode 100644 index 000000000000..92e0ee73e8f4 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classification_mappings_operations_async.py @@ -0,0 +1,88 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationStorageClassificationMappingsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_storage_classification_mappings_list_by_replication_storage_classifications( + self, resource_group + ): + response = self.client.replication_storage_classification_mappings.list_by_replication_storage_classifications( + fabric_name="str", + storage_classification_name="str", + api_version="2025-02-01", + ) + 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_replication_storage_classification_mappings_get(self, resource_group): + response = await self.client.replication_storage_classification_mappings.get( + fabric_name="str", + storage_classification_name="str", + storage_classification_mapping_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_storage_classification_mappings_begin_create(self, resource_group): + response = await ( + await self.client.replication_storage_classification_mappings.begin_create( + fabric_name="str", + storage_classification_name="str", + storage_classification_mapping_name="str", + pairing_input={"properties": {"targetStorageClassificationId": "str"}}, + api_version="2025-02-01", + ) + ).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_replication_storage_classification_mappings_begin_delete(self, resource_group): + response = await ( + await self.client.replication_storage_classification_mappings.begin_delete( + fabric_name="str", + storage_classification_name="str", + storage_classification_mapping_name="str", + api_version="2025-02-01", + ) + ).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_replication_storage_classification_mappings_list(self, resource_group): + response = self.client.replication_storage_classification_mappings.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classifications_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classifications_operations.py new file mode 100644 index 000000000000..3888ec940f4e --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classifications_operations.py @@ -0,0 +1,52 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationStorageClassificationsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_storage_classifications_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_storage_classifications.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_storage_classifications_get(self, resource_group): + response = self.client.replication_storage_classifications.get( + fabric_name="str", + storage_classification_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_storage_classifications_list(self, resource_group): + response = self.client.replication_storage_classifications.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classifications_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classifications_operations_async.py new file mode 100644 index 000000000000..24ccce89ce6d --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_storage_classifications_operations_async.py @@ -0,0 +1,53 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationStorageClassificationsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_storage_classifications_list_by_replication_fabrics(self, resource_group): + response = self.client.replication_storage_classifications.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + 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_replication_storage_classifications_get(self, resource_group): + response = await self.client.replication_storage_classifications.get( + fabric_name="str", + storage_classification_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_storage_classifications_list(self, resource_group): + response = self.client.replication_storage_classifications.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_health_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_health_operations.py new file mode 100644 index 000000000000..4539165b65a0 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_health_operations.py @@ -0,0 +1,39 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationVaultHealthOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_vault_health_get(self, resource_group): + response = self.client.replication_vault_health.get( + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_vault_health_begin_refresh(self, resource_group): + response = self.client.replication_vault_health.begin_refresh( + api_version="2025-02-01", + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_health_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_health_operations_async.py new file mode 100644 index 000000000000..1dbfb399e61e --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_health_operations_async.py @@ -0,0 +1,42 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationVaultHealthOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_vault_health_get(self, resource_group): + response = await self.client.replication_vault_health.get( + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_vault_health_begin_refresh(self, resource_group): + response = await ( + await self.client.replication_vault_health.begin_refresh( + api_version="2025-02-01", + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_setting_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_setting_operations.py new file mode 100644 index 000000000000..c40fb208bc38 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_setting_operations.py @@ -0,0 +1,52 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationVaultSettingOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_vault_setting_list(self, resource_group): + response = self.client.replication_vault_setting.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_vault_setting_get(self, resource_group): + response = self.client.replication_vault_setting.get( + vault_setting_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replication_vault_setting_begin_create(self, resource_group): + response = self.client.replication_vault_setting.begin_create( + vault_setting_name="str", + input={"properties": {"migrationSolutionId": "str", "vmwareToAzureProviderType": "str"}}, + api_version="2025-02-01", + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_setting_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_setting_operations_async.py new file mode 100644 index 000000000000..0981c312fe01 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replication_vault_setting_operations_async.py @@ -0,0 +1,55 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationVaultSettingOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_vault_setting_list(self, resource_group): + response = self.client.replication_vault_setting.list( + api_version="2025-02-01", + ) + 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_replication_vault_setting_get(self, resource_group): + response = await self.client.replication_vault_setting.get( + vault_setting_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replication_vault_setting_begin_create(self, resource_group): + response = await ( + await self.client.replication_vault_setting.begin_create( + vault_setting_name="str", + input={"properties": {"migrationSolutionId": "str", "vmwareToAzureProviderType": "str"}}, + api_version="2025-02-01", + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replicationv_centers_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replicationv_centers_operations.py new file mode 100644 index 000000000000..0a106bf6dda4 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replicationv_centers_operations.py @@ -0,0 +1,106 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationvCentersOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replicationv_centers_list_by_replication_fabrics(self, resource_group): + response = self.client.replicationv_centers.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replicationv_centers_get(self, resource_group): + response = self.client.replicationv_centers.get( + fabric_name="str", + vcenter_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_replicationv_centers_begin_create(self, resource_group): + response = self.client.replicationv_centers.begin_create( + fabric_name="str", + vcenter_name="str", + add_v_center_request={ + "properties": { + "friendlyName": "str", + "ipAddress": "str", + "port": "str", + "processServerId": "str", + "runAsAccountId": "str", + } + }, + api_version="2025-02-01", + ).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_replicationv_centers_begin_delete(self, resource_group): + response = self.client.replicationv_centers.begin_delete( + fabric_name="str", + vcenter_name="str", + api_version="2025-02-01", + ).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_replicationv_centers_begin_update(self, resource_group): + response = self.client.replicationv_centers.begin_update( + fabric_name="str", + vcenter_name="str", + update_v_center_request={ + "properties": { + "friendlyName": "str", + "ipAddress": "str", + "port": "str", + "processServerId": "str", + "runAsAccountId": "str", + } + }, + api_version="2025-02-01", + ).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_replicationv_centers_list(self, resource_group): + response = self.client.replicationv_centers.list( + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replicationv_centers_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replicationv_centers_operations_async.py new file mode 100644 index 000000000000..e6be442321f6 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_replicationv_centers_operations_async.py @@ -0,0 +1,113 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementReplicationvCentersOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replicationv_centers_list_by_replication_fabrics(self, resource_group): + response = self.client.replicationv_centers.list_by_replication_fabrics( + fabric_name="str", + api_version="2025-02-01", + ) + 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_replicationv_centers_get(self, resource_group): + response = await self.client.replicationv_centers.get( + fabric_name="str", + vcenter_name="str", + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_replicationv_centers_begin_create(self, resource_group): + response = await ( + await self.client.replicationv_centers.begin_create( + fabric_name="str", + vcenter_name="str", + add_v_center_request={ + "properties": { + "friendlyName": "str", + "ipAddress": "str", + "port": "str", + "processServerId": "str", + "runAsAccountId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replicationv_centers_begin_delete(self, resource_group): + response = await ( + await self.client.replicationv_centers.begin_delete( + fabric_name="str", + vcenter_name="str", + api_version="2025-02-01", + ) + ).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_replicationv_centers_begin_update(self, resource_group): + response = await ( + await self.client.replicationv_centers.begin_update( + fabric_name="str", + vcenter_name="str", + update_v_center_request={ + "properties": { + "friendlyName": "str", + "ipAddress": "str", + "port": "str", + "processServerId": "str", + "runAsAccountId": "str", + } + }, + api_version="2025-02-01", + ) + ).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_replicationv_centers_list(self, resource_group): + response = self.client.replicationv_centers.list( + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_supported_operating_systems_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_supported_operating_systems_operations.py new file mode 100644 index 000000000000..c4f28dab0ef6 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_supported_operating_systems_operations.py @@ -0,0 +1,29 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementSupportedOperatingSystemsOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_supported_operating_systems_get(self, resource_group): + response = self.client.supported_operating_systems.get( + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_supported_operating_systems_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_supported_operating_systems_operations_async.py new file mode 100644 index 000000000000..d551eefe6ddb --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_supported_operating_systems_operations_async.py @@ -0,0 +1,30 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementSupportedOperatingSystemsOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_supported_operating_systems_get(self, resource_group): + response = await self.client.supported_operating_systems.get( + api_version="2025-02-01", + ) + + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_target_compute_sizes_operations.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_target_compute_sizes_operations.py new file mode 100644 index 000000000000..75f1cd5c59ac --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_target_compute_sizes_operations.py @@ -0,0 +1,32 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementTargetComputeSizesOperations(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_target_compute_sizes_list_by_replication_protected_items(self, resource_group): + response = self.client.target_compute_sizes.list_by_replication_protected_items( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_target_compute_sizes_operations_async.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_target_compute_sizes_operations_async.py new file mode 100644 index 000000000000..5b7fed2c8ee4 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/generated_tests/test_site_recovery_management_target_compute_sizes_operations_async.py @@ -0,0 +1,33 @@ +# 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) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from azure.mgmt.recoveryservicessiterecovery.aio import SiteRecoveryManagementClient + +from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer +from devtools_testutils.aio import recorded_by_proxy_async + +AZURE_LOCATION = "eastus" + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSiteRecoveryManagementTargetComputeSizesOperationsAsync(AzureMgmtRecordedTestCase): + def setup_method(self, method): + self.client = self.create_mgmt_client(SiteRecoveryManagementClient, is_async=True) + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_target_compute_sizes_list_by_replication_protected_items(self, resource_group): + response = self.client.target_compute_sizes.list_by_replication_protected_items( + fabric_name="str", + protection_container_name="str", + replicated_protected_item_name="str", + api_version="2025-02-01", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/setup.py b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/setup.py index b40793525140..0916d4a42968 100644 --- a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/setup.py +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/setup.py @@ -53,7 +53,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -74,9 +73,10 @@ "pytyped": ["py.typed"], }, install_requires=[ - "isodate<1.0.0,>=0.6.1", - "azure-common~=1.1", - "azure-mgmt-core>=1.3.2,<2.0.0", + "isodate>=0.6.1", + "typing-extensions>=4.6.0", + "azure-common>=1.1", + "azure-mgmt-core>=1.5.0", ], - python_requires=">=3.8", + python_requires=">=3.9", ) diff --git a/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/stable.json b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/stable.json new file mode 100644 index 000000000000..843433ba8e76 --- /dev/null +++ b/sdk/recoveryservices/azure-mgmt-recoveryservicessiterecovery/stable.json @@ -0,0 +1,86626 @@ +{ + "azure.mgmt.recoveryservicessiterecovery": { + "class_nodes": { + "SiteRecoveryManagementClient": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "credential": { + "default": null, + "param_type": "positional_or_keyword" + }, + "subscription_id": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_group_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "base_url": { + "default": "str", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "close": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "client_side_validation": { + "attr_type": false + }, + "operations": { + "attr_type": "Operations" + }, + "replication_alert_settings": { + "attr_type": "ReplicationAlertSettingsOperations" + }, + "replication_appliances": { + "attr_type": "ReplicationAppliancesOperations" + }, + "replication_eligibility_results": { + "attr_type": "ReplicationEligibilityResultsOperations" + }, + "replication_events": { + "attr_type": "ReplicationEventsOperations" + }, + "replication_fabrics": { + "attr_type": "ReplicationFabricsOperations" + }, + "replication_logical_networks": { + "attr_type": "ReplicationLogicalNetworksOperations" + }, + "replication_networks": { + "attr_type": "ReplicationNetworksOperations" + }, + "replication_network_mappings": { + "attr_type": "ReplicationNetworkMappingsOperations" + }, + "replication_protection_containers": { + "attr_type": "ReplicationProtectionContainersOperations" + }, + "replication_migration_items": { + "attr_type": "ReplicationMigrationItemsOperations" + }, + "migration_recovery_points": { + "attr_type": "MigrationRecoveryPointsOperations" + }, + "replication_protectable_items": { + "attr_type": "ReplicationProtectableItemsOperations" + }, + "replication_protected_items": { + "attr_type": "ReplicationProtectedItemsOperations" + }, + "recovery_points": { + "attr_type": "RecoveryPointsOperations" + }, + "target_compute_sizes": { + "attr_type": "TargetComputeSizesOperations" + }, + "replication_protection_container_mappings": { + "attr_type": "ReplicationProtectionContainerMappingsOperations" + }, + "replication_recovery_services_providers": { + "attr_type": "ReplicationRecoveryServicesProvidersOperations" + }, + "replication_storage_classifications": { + "attr_type": "ReplicationStorageClassificationsOperations" + }, + "replication_storage_classification_mappings": { + "attr_type": "ReplicationStorageClassificationMappingsOperations" + }, + "replicationv_centers": { + "attr_type": "ReplicationvCentersOperations" + }, + "replication_jobs": { + "attr_type": "ReplicationJobsOperations" + }, + "replication_policies": { + "attr_type": "ReplicationPoliciesOperations" + }, + "replication_protection_intents": { + "attr_type": "ReplicationProtectionIntentsOperations" + }, + "replication_recovery_plans": { + "attr_type": "ReplicationRecoveryPlansOperations" + }, + "supported_operating_systems": { + "attr_type": "SupportedOperatingSystemsOperations" + }, + "replication_vault_health": { + "attr_type": "ReplicationVaultHealthOperations" + }, + "replication_vault_setting": { + "attr_type": "ReplicationVaultSettingOperations" + } + } + } + }, + "function_nodes": {} + }, + "azure.mgmt.recoveryservicessiterecovery.models": { + "class_nodes": { + "A2AAddDisksInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "vm_managed_disks": { + "attr_type": "vm_managed_disks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AApplyRecoveryPointInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AContainerCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "agent_auto_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "agent_auto_update_status": { + "attr_type": "agent_auto_update_status" + }, + "automation_account_arm_id": { + "attr_type": "automation_account_arm_id" + }, + "automation_account_authentication_type": { + "attr_type": "automation_account_authentication_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ACreateProtectionIntentInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_object_id": { + "default": null, + "param_type": "keyword_only" + }, + "primary_location": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_location": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_subscription_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_availability_type": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": null, + "param_type": "keyword_only" + }, + "protection_profile_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_staging_storage_account_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_network_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_proximity_placement_group_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "auto_protection_of_data_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_boot_diag_storage_account": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_auto_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "primary_location": { + "attr_type": "primary_location" + }, + "recovery_location": { + "attr_type": "recovery_location" + }, + "recovery_subscription_id": { + "attr_type": "recovery_subscription_id" + }, + "recovery_availability_type": { + "attr_type": "recovery_availability_type" + }, + "protection_profile_custom_input": { + "attr_type": "protection_profile_custom_input" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "primary_staging_storage_account_custom_input": { + "attr_type": "primary_staging_storage_account_custom_input" + }, + "recovery_availability_set_custom_input": { + "attr_type": "recovery_availability_set_custom_input" + }, + "recovery_virtual_network_custom_input": { + "attr_type": "recovery_virtual_network_custom_input" + }, + "recovery_proximity_placement_group_custom_input": { + "attr_type": "recovery_proximity_placement_group_custom_input" + }, + "auto_protection_of_data_disk": { + "attr_type": "auto_protection_of_data_disk" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "vm_managed_disks": { + "attr_type": "vm_managed_disks" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "recovery_boot_diag_storage_account": { + "attr_type": "recovery_boot_diag_storage_account" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "recovery_availability_zone": { + "attr_type": "recovery_availability_zone" + }, + "agent_auto_update_status": { + "attr_type": "agent_auto_update_status" + }, + "automation_account_authentication_type": { + "attr_type": "automation_account_authentication_type" + }, + "automation_account_arm_id": { + "attr_type": "automation_account_arm_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ACrossClusterMigrationApplyRecoveryPointInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ACrossClusterMigrationContainerCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ACrossClusterMigrationEnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "recovery_container_id": { + "attr_type": "recovery_container_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ACrossClusterMigrationPolicyCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ACrossClusterMigrationReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "lifecycle_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "primary_fabric_location": { + "attr_type": "primary_fabric_location" + }, + "os_type": { + "attr_type": "os_type" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "lifecycle_id": { + "attr_type": "lifecycle_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AEnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_object_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_cloud_service_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_boot_diag_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_machine_scale_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_capacity_reservation_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "auto_protection_of_data_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "recovery_container_id": { + "attr_type": "recovery_container_id" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "recovery_cloud_service_id": { + "attr_type": "recovery_cloud_service_id" + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "recovery_proximity_placement_group_id": { + "attr_type": "recovery_proximity_placement_group_id" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "vm_managed_disks": { + "attr_type": "vm_managed_disks" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "recovery_boot_diag_storage_account_id": { + "attr_type": "recovery_boot_diag_storage_account_id" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "recovery_availability_zone": { + "attr_type": "recovery_availability_zone" + }, + "recovery_extended_location": { + "attr_type": "recovery_extended_location" + }, + "recovery_azure_network_id": { + "attr_type": "recovery_azure_network_id" + }, + "recovery_subnet_name": { + "attr_type": "recovery_subnet_name" + }, + "recovery_virtual_machine_scale_set_id": { + "attr_type": "recovery_virtual_machine_scale_set_id" + }, + "recovery_capacity_reservation_group_id": { + "attr_type": "recovery_capacity_reservation_group_id" + }, + "auto_protection_of_data_disk": { + "attr_type": "auto_protection_of_data_disk" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protected_item_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "protected_item_name": { + "attr_type": "protected_item_name" + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "fabric_name": { + "attr_type": "fabric_name" + }, + "fabric_location": { + "attr_type": "fabric_location" + }, + "remote_fabric_name": { + "attr_type": "remote_fabric_name" + }, + "remote_fabric_location": { + "attr_type": "remote_fabric_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AExtendedLocationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "primary_extended_location": { + "attr_type": "primary_extended_location" + }, + "recovery_extended_location": { + "attr_type": "recovery_extended_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AFabricSpecificLocationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "initial_primary_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_recovery_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_primary_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_recovery_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "initial_primary_zone": { + "attr_type": "initial_primary_zone" + }, + "initial_recovery_zone": { + "attr_type": "initial_recovery_zone" + }, + "initial_primary_extended_location": { + "attr_type": "initial_primary_extended_location" + }, + "initial_recovery_extended_location": { + "attr_type": "initial_recovery_extended_location" + }, + "initial_primary_fabric_location": { + "attr_type": "initial_primary_fabric_location" + }, + "initial_recovery_fabric_location": { + "attr_type": "initial_recovery_fabric_location" + }, + "primary_zone": { + "attr_type": "primary_zone" + }, + "recovery_zone": { + "attr_type": "recovery_zone" + }, + "primary_extended_location": { + "attr_type": "primary_extended_location" + }, + "recovery_extended_location": { + "attr_type": "recovery_extended_location" + }, + "primary_fabric_location": { + "attr_type": "primary_fabric_location" + }, + "recovery_fabric_location": { + "attr_type": "recovery_fabric_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2APolicyCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "multi_vm_sync_status": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2APolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_threshold_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_threshold_in_minutes": { + "attr_type": "recovery_point_threshold_in_minutes" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AProtectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_uri": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_disk_azure_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_disk_uri": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_staging_azure_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_required": { + "default": "none", + "param_type": "keyword_only" + }, + "monitoring_percentage_completion": { + "default": "none", + "param_type": "keyword_only" + }, + "monitoring_job_type": { + "default": "none", + "param_type": "keyword_only" + }, + "data_pending_in_staging_storage_account_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "data_pending_at_source_agent_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_state": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_disk_level_operation": { + "default": "none", + "param_type": "keyword_only" + }, + "is_disk_encrypted": { + "default": "none", + "param_type": "keyword_only" + }, + "secret_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "dek_key_vault_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "is_disk_key_encrypted": { + "default": "none", + "param_type": "keyword_only" + }, + "key_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "kek_key_vault_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "failover_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_uri": { + "attr_type": "disk_uri" + }, + "recovery_azure_storage_account_id": { + "attr_type": "recovery_azure_storage_account_id" + }, + "primary_disk_azure_storage_account_id": { + "attr_type": "primary_disk_azure_storage_account_id" + }, + "recovery_disk_uri": { + "attr_type": "recovery_disk_uri" + }, + "disk_name": { + "attr_type": "disk_name" + }, + "disk_capacity_in_bytes": { + "attr_type": "disk_capacity_in_bytes" + }, + "primary_staging_azure_storage_account_id": { + "attr_type": "primary_staging_azure_storage_account_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "resync_required": { + "attr_type": "resync_required" + }, + "monitoring_percentage_completion": { + "attr_type": "monitoring_percentage_completion" + }, + "monitoring_job_type": { + "attr_type": "monitoring_job_type" + }, + "data_pending_in_staging_storage_account_in_mb": { + "attr_type": "data_pending_in_staging_storage_account_in_mb" + }, + "data_pending_at_source_agent_in_mb": { + "attr_type": "data_pending_at_source_agent_in_mb" + }, + "disk_state": { + "attr_type": "disk_state" + }, + "allowed_disk_level_operation": { + "attr_type": "allowed_disk_level_operation" + }, + "is_disk_encrypted": { + "attr_type": "is_disk_encrypted" + }, + "secret_identifier": { + "attr_type": "secret_identifier" + }, + "dek_key_vault_arm_id": { + "attr_type": "dek_key_vault_arm_id" + }, + "is_disk_key_encrypted": { + "attr_type": "is_disk_key_encrypted" + }, + "key_identifier": { + "attr_type": "key_identifier" + }, + "kek_key_vault_arm_id": { + "attr_type": "kek_key_vault_arm_id" + }, + "failover_disk_name": { + "attr_type": "failover_disk_name" + }, + "tfo_disk_name": { + "attr_type": "tfo_disk_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AProtectedManagedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_target_disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_replica_disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_orignal_target_disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_replica_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_target_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_staging_azure_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_required": { + "default": "none", + "param_type": "keyword_only" + }, + "monitoring_percentage_completion": { + "default": "none", + "param_type": "keyword_only" + }, + "monitoring_job_type": { + "default": "none", + "param_type": "keyword_only" + }, + "data_pending_in_staging_storage_account_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "data_pending_at_source_agent_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_state": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_disk_level_operation": { + "default": "none", + "param_type": "keyword_only" + }, + "is_disk_encrypted": { + "default": "none", + "param_type": "keyword_only" + }, + "secret_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "dek_key_vault_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "is_disk_key_encrypted": { + "default": "none", + "param_type": "keyword_only" + }, + "key_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "kek_key_vault_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "failover_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "recovery_target_disk_id": { + "attr_type": "recovery_target_disk_id" + }, + "recovery_replica_disk_id": { + "attr_type": "recovery_replica_disk_id" + }, + "recovery_orignal_target_disk_id": { + "attr_type": "recovery_orignal_target_disk_id" + }, + "recovery_replica_disk_account_type": { + "attr_type": "recovery_replica_disk_account_type" + }, + "recovery_target_disk_account_type": { + "attr_type": "recovery_target_disk_account_type" + }, + "recovery_disk_encryption_set_id": { + "attr_type": "recovery_disk_encryption_set_id" + }, + "primary_disk_encryption_set_id": { + "attr_type": "primary_disk_encryption_set_id" + }, + "disk_name": { + "attr_type": "disk_name" + }, + "disk_capacity_in_bytes": { + "attr_type": "disk_capacity_in_bytes" + }, + "primary_staging_azure_storage_account_id": { + "attr_type": "primary_staging_azure_storage_account_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "resync_required": { + "attr_type": "resync_required" + }, + "monitoring_percentage_completion": { + "attr_type": "monitoring_percentage_completion" + }, + "monitoring_job_type": { + "attr_type": "monitoring_job_type" + }, + "data_pending_in_staging_storage_account_in_mb": { + "attr_type": "data_pending_in_staging_storage_account_in_mb" + }, + "data_pending_at_source_agent_in_mb": { + "attr_type": "data_pending_at_source_agent_in_mb" + }, + "disk_state": { + "attr_type": "disk_state" + }, + "allowed_disk_level_operation": { + "attr_type": "allowed_disk_level_operation" + }, + "is_disk_encrypted": { + "attr_type": "is_disk_encrypted" + }, + "secret_identifier": { + "attr_type": "secret_identifier" + }, + "dek_key_vault_arm_id": { + "attr_type": "dek_key_vault_arm_id" + }, + "is_disk_key_encrypted": { + "attr_type": "is_disk_key_encrypted" + }, + "key_identifier": { + "attr_type": "key_identifier" + }, + "kek_key_vault_arm_id": { + "attr_type": "kek_key_vault_arm_id" + }, + "failover_disk_name": { + "attr_type": "failover_disk_name" + }, + "tfo_disk_name": { + "attr_type": "tfo_disk_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AProtectionContainerMappingDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "agent_auto_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "schedule_name": { + "default": "none", + "param_type": "keyword_only" + }, + "job_schedule_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "agent_auto_update_status": { + "attr_type": "agent_auto_update_status" + }, + "automation_account_arm_id": { + "attr_type": "automation_account_arm_id" + }, + "automation_account_authentication_type": { + "attr_type": "automation_account_authentication_type" + }, + "schedule_name": { + "attr_type": "schedule_name" + }, + "job_schedule_name": { + "attr_type": "job_schedule_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AProtectionIntentDiskInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_uri": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_azure_storage_account_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_staging_storage_account_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_uri": { + "attr_type": "disk_uri" + }, + "recovery_azure_storage_account_custom_input": { + "attr_type": "recovery_azure_storage_account_custom_input" + }, + "primary_staging_storage_account_custom_input": { + "attr_type": "primary_staging_storage_account_custom_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AProtectionIntentManagedDiskInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": null, + "param_type": "keyword_only" + }, + "primary_staging_storage_account_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_custom_input": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_replica_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_target_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "primary_staging_storage_account_custom_input": { + "attr_type": "primary_staging_storage_account_custom_input" + }, + "recovery_resource_group_custom_input": { + "attr_type": "recovery_resource_group_custom_input" + }, + "recovery_replica_disk_account_type": { + "attr_type": "recovery_replica_disk_account_type" + }, + "recovery_target_disk_account_type": { + "attr_type": "recovery_target_disk_account_type" + }, + "recovery_disk_encryption_set_id": { + "attr_type": "recovery_disk_encryption_set_id" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ARecoveryAvailabilityType": { + "type": "Enum", + "methods": {}, + "properties": { + "AVAILABILITY_SET": "AVAILABILITY_SET", + "AVAILABILITY_ZONE": "AVAILABILITY_ZONE", + "SINGLE": "SINGLE" + } + }, + "A2ARecoveryPointDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_sync_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disks": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_sync_type": { + "attr_type": "recovery_point_sync_type" + }, + "disks": { + "attr_type": "disks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ARemoveDisksInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vm_disks_uris": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_managed_disks_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vm_disks_uris": { + "attr_type": "vm_disks_uris" + }, + "vm_managed_disks_ids": { + "attr_type": "vm_managed_disks_ids" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_create_option": { + "default": "none", + "param_type": "keyword_only" + }, + "management_id": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "unprotected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_boot_diag_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_cloud_service": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_recovery_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_tfo_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_synced_config_details": { + "default": "none", + "param_type": "keyword_only" + }, + "monitoring_percentage_completion": { + "default": "none", + "param_type": "keyword_only" + }, + "monitoring_job_type": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "is_replication_agent_update_required": { + "default": "none", + "param_type": "keyword_only" + }, + "is_replication_agent_certificate_update_required": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "lifecycle_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_failover_recovery_fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "rpo_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "last_rpo_calculated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "auto_protection_of_data_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_machine_scale_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_capacity_reservation_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "initial_primary_zone": { + "attr_type": null + }, + "initial_primary_fabric_location": { + "attr_type": null + }, + "initial_recovery_zone": { + "attr_type": null + }, + "initial_primary_extended_location": { + "attr_type": "initial_primary_extended_location" + }, + "initial_recovery_extended_location": { + "attr_type": "initial_recovery_extended_location" + }, + "initial_recovery_fabric_location": { + "attr_type": null + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "multi_vm_group_create_option": { + "attr_type": "multi_vm_group_create_option" + }, + "management_id": { + "attr_type": "management_id" + }, + "protected_disks": { + "attr_type": "protected_disks" + }, + "unprotected_disks": { + "attr_type": "unprotected_disks" + }, + "protected_managed_disks": { + "attr_type": "protected_managed_disks" + }, + "recovery_boot_diag_storage_account_id": { + "attr_type": "recovery_boot_diag_storage_account_id" + }, + "primary_fabric_location": { + "attr_type": "primary_fabric_location" + }, + "recovery_fabric_location": { + "attr_type": "recovery_fabric_location" + }, + "os_type": { + "attr_type": "os_type" + }, + "recovery_azure_vm_size": { + "attr_type": "recovery_azure_vm_size" + }, + "recovery_azure_vm_name": { + "attr_type": "recovery_azure_vm_name" + }, + "recovery_azure_resource_group_id": { + "attr_type": "recovery_azure_resource_group_id" + }, + "recovery_cloud_service": { + "attr_type": "recovery_cloud_service" + }, + "recovery_availability_set": { + "attr_type": "recovery_availability_set" + }, + "selected_recovery_azure_network_id": { + "attr_type": "selected_recovery_azure_network_id" + }, + "selected_tfo_azure_network_id": { + "attr_type": "selected_tfo_azure_network_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "vm_synced_config_details": { + "attr_type": "vm_synced_config_details" + }, + "monitoring_percentage_completion": { + "attr_type": "monitoring_percentage_completion" + }, + "monitoring_job_type": { + "attr_type": "monitoring_job_type" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "agent_version": { + "attr_type": "agent_version" + }, + "agent_expiry_date": { + "attr_type": "agent_expiry_date" + }, + "is_replication_agent_update_required": { + "attr_type": "is_replication_agent_update_required" + }, + "agent_certificate_expiry_date": { + "attr_type": null + }, + "is_replication_agent_certificate_update_required": { + "attr_type": "is_replication_agent_certificate_update_required" + }, + "recovery_fabric_object_id": { + "attr_type": "recovery_fabric_object_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "lifecycle_id": { + "attr_type": "lifecycle_id" + }, + "test_failover_recovery_fabric_object_id": { + "attr_type": "test_failover_recovery_fabric_object_id" + }, + "rpo_in_seconds": { + "attr_type": "rpo_in_seconds" + }, + "last_rpo_calculated_time": { + "attr_type": "last_rpo_calculated_time" + }, + "primary_availability_zone": { + "attr_type": "primary_availability_zone" + }, + "recovery_availability_zone": { + "attr_type": "recovery_availability_zone" + }, + "primary_extended_location": { + "attr_type": "primary_extended_location" + }, + "recovery_extended_location": { + "attr_type": "recovery_extended_location" + }, + "vm_encryption_type": { + "attr_type": null + }, + "tfo_azure_vm_name": { + "attr_type": "tfo_azure_vm_name" + }, + "recovery_azure_generation": { + "attr_type": null + }, + "recovery_proximity_placement_group_id": { + "attr_type": "recovery_proximity_placement_group_id" + }, + "auto_protection_of_data_disk": { + "attr_type": "auto_protection_of_data_disk" + }, + "recovery_virtual_machine_scale_set_id": { + "attr_type": "recovery_virtual_machine_scale_set_id" + }, + "recovery_capacity_reservation_group_id": { + "attr_type": "recovery_capacity_reservation_group_id" + }, + "churn_option_selected": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AReplicationIntentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_availability_type": { + "default": null, + "param_type": "keyword_only" + }, + "fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_subscription_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_profile": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_staging_storage_account": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_network": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_proximity_placement_group": { + "default": "none", + "param_type": "keyword_only" + }, + "auto_protection_of_data_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_boot_diag_storage_account": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_auto_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "primary_location": { + "attr_type": "primary_location" + }, + "recovery_location": { + "attr_type": "recovery_location" + }, + "recovery_subscription_id": { + "attr_type": "recovery_subscription_id" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "vm_managed_disks": { + "attr_type": "vm_managed_disks" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "protection_profile": { + "attr_type": "protection_profile" + }, + "primary_staging_storage_account": { + "attr_type": "primary_staging_storage_account" + }, + "recovery_availability_set": { + "attr_type": "recovery_availability_set" + }, + "recovery_virtual_network": { + "attr_type": "recovery_virtual_network" + }, + "recovery_proximity_placement_group": { + "attr_type": "recovery_proximity_placement_group" + }, + "auto_protection_of_data_disk": { + "attr_type": "auto_protection_of_data_disk" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "recovery_boot_diag_storage_account": { + "attr_type": "recovery_boot_diag_storage_account" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "recovery_availability_zone": { + "attr_type": "recovery_availability_zone" + }, + "recovery_availability_type": { + "attr_type": "recovery_availability_type" + }, + "agent_auto_update_status": { + "attr_type": "agent_auto_update_status" + }, + "automation_account_arm_id": { + "attr_type": "automation_account_arm_id" + }, + "automation_account_authentication_type": { + "attr_type": "automation_account_authentication_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AReprotectInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_cloud_service_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_container_id": { + "attr_type": "recovery_container_id" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "recovery_cloud_service_id": { + "attr_type": "recovery_cloud_service_id" + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ARpRecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "LATEST": "LATEST", + "LATEST_APPLICATION_CONSISTENT": "LATEST_APPLICATION_CONSISTENT", + "LATEST_CRASH_CONSISTENT": "LATEST_CRASH_CONSISTENT", + "LATEST_PROCESSED": "LATEST_PROCESSED" + } + }, + "A2ASwitchProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_cloud_service_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_boot_diag_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_machine_scale_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_capacity_reservation_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_container_id": { + "attr_type": "recovery_container_id" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "vm_managed_disks": { + "attr_type": "vm_managed_disks" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "recovery_cloud_service_id": { + "attr_type": "recovery_cloud_service_id" + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "recovery_boot_diag_storage_account_id": { + "attr_type": "recovery_boot_diag_storage_account_id" + }, + "recovery_availability_zone": { + "attr_type": "recovery_availability_zone" + }, + "recovery_proximity_placement_group_id": { + "attr_type": "recovery_proximity_placement_group_id" + }, + "recovery_virtual_machine_scale_set_id": { + "attr_type": "recovery_virtual_machine_scale_set_id" + }, + "recovery_capacity_reservation_group_id": { + "attr_type": "recovery_capacity_reservation_group_id" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2ATestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "cloud_service_creation_option": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "cloud_service_creation_option": { + "attr_type": "cloud_service_creation_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AUnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "cloud_service_creation_option": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "cloud_service_creation_option": { + "attr_type": "cloud_service_creation_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AUnprotectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_lun_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_auto_protection_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_lun_id": { + "attr_type": "disk_lun_id" + }, + "disk_auto_protection_status": { + "attr_type": "disk_auto_protection_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AUpdateContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "agent_auto_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "automation_account_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "agent_auto_update_status": { + "attr_type": "agent_auto_update_status" + }, + "automation_account_arm_id": { + "attr_type": "automation_account_arm_id" + }, + "automation_account_authentication_type": { + "attr_type": "automation_account_authentication_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AUpdateReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_cloud_service_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "managed_disk_update_details": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_boot_diag_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_machine_scale_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_capacity_reservation_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_cloud_service_id": { + "attr_type": "recovery_cloud_service_id" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "managed_disk_update_details": { + "attr_type": "managed_disk_update_details" + }, + "recovery_boot_diag_storage_account_id": { + "attr_type": "recovery_boot_diag_storage_account_id" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "tfo_azure_vm_name": { + "attr_type": "tfo_azure_vm_name" + }, + "recovery_proximity_placement_group_id": { + "attr_type": "recovery_proximity_placement_group_id" + }, + "recovery_virtual_machine_scale_set_id": { + "attr_type": "recovery_virtual_machine_scale_set_id" + }, + "recovery_capacity_reservation_group_id": { + "attr_type": "recovery_capacity_reservation_group_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AVmDiskInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_uri": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_azure_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "primary_staging_azure_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_uri": { + "attr_type": "disk_uri" + }, + "recovery_azure_storage_account_id": { + "attr_type": "recovery_azure_storage_account_id" + }, + "primary_staging_azure_storage_account_id": { + "attr_type": "primary_staging_azure_storage_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AVmManagedDiskInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": null, + "param_type": "keyword_only" + }, + "primary_staging_azure_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_resource_group_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_replica_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_target_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "primary_staging_azure_storage_account_id": { + "attr_type": "primary_staging_azure_storage_account_id" + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "recovery_replica_disk_account_type": { + "attr_type": "recovery_replica_disk_account_type" + }, + "recovery_target_disk_account_type": { + "attr_type": "recovery_target_disk_account_type" + }, + "recovery_disk_encryption_set_id": { + "attr_type": "recovery_disk_encryption_set_id" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AVmManagedDiskUpdateDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_target_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_replica_disk_account_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_info": { + "default": "none", + "param_type": "keyword_only" + }, + "failover_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "recovery_target_disk_account_type": { + "attr_type": "recovery_target_disk_account_type" + }, + "recovery_replica_disk_account_type": { + "attr_type": "recovery_replica_disk_account_type" + }, + "disk_encryption_info": { + "attr_type": "disk_encryption_info" + }, + "failover_disk_name": { + "attr_type": "failover_disk_name" + }, + "tfo_disk_name": { + "attr_type": "tfo_disk_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "A2AZoneDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "source": { + "default": "none", + "param_type": "keyword_only" + }, + "target": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "source": { + "attr_type": "source" + }, + "target": { + "attr_type": "target" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ASRTask": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "task_id": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "end_time": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_actions": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "state": { + "default": "none", + "param_type": "keyword_only" + }, + "state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "task_type": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_details": { + "default": "none", + "param_type": "keyword_only" + }, + "group_task_custom_details": { + "default": "none", + "param_type": "keyword_only" + }, + "errors": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "task_id": { + "attr_type": "task_id" + }, + "name": { + "attr_type": "name" + }, + "start_time": { + "attr_type": "start_time" + }, + "end_time": { + "attr_type": "end_time" + }, + "allowed_actions": { + "attr_type": "allowed_actions" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "state": { + "attr_type": "state" + }, + "state_description": { + "attr_type": "state_description" + }, + "task_type": { + "attr_type": "task_type" + }, + "custom_details": { + "attr_type": "custom_details" + }, + "group_task_custom_details": { + "attr_type": "group_task_custom_details" + }, + "errors": { + "attr_type": "errors" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddDisksInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddDisksInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddDisksProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddRecoveryServicesProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddRecoveryServicesProviderInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "machine_name": { + "default": null, + "param_type": "keyword_only" + }, + "authentication_identity_input": { + "default": null, + "param_type": "keyword_only" + }, + "resource_access_identity_input": { + "default": null, + "param_type": "keyword_only" + }, + "machine_id": { + "default": "none", + "param_type": "keyword_only" + }, + "bios_id": { + "default": "none", + "param_type": "keyword_only" + }, + "data_plane_authentication_identity_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "machine_name": { + "attr_type": "machine_name" + }, + "machine_id": { + "attr_type": "machine_id" + }, + "bios_id": { + "attr_type": "bios_id" + }, + "authentication_identity_input": { + "attr_type": "authentication_identity_input" + }, + "resource_access_identity_input": { + "attr_type": "resource_access_identity_input" + }, + "data_plane_authentication_identity_input": { + "attr_type": "data_plane_authentication_identity_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddVCenterRequest": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AddVCenterRequestProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "port": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "port": { + "attr_type": "port" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AgentAutoUpdateStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "DISABLED": "DISABLED", + "ENABLED": "ENABLED" + } + }, + "AgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "agent_id": { + "attr_type": null + }, + "machine_id": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "disks": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AgentDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": null + }, + "disk_name": { + "attr_type": null + }, + "is_os_disk": { + "attr_type": null + }, + "capacity_in_bytes": { + "attr_type": null + }, + "lun_id": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AgentUpgradeBlockedReason": { + "type": "Enum", + "methods": {}, + "properties": { + "AGENT_NO_HEARTBEAT": "AGENT_NO_HEARTBEAT", + "ALREADY_ON_LATEST_VERSION": "ALREADY_ON_LATEST_VERSION", + "DISTRO_IS_NOT_REPORTED": "DISTRO_IS_NOT_REPORTED", + "DISTRO_NOT_SUPPORTED_FOR_UPGRADE": "DISTRO_NOT_SUPPORTED_FOR_UPGRADE", + "INCOMPATIBLE_APPLIANCE_VERSION": "INCOMPATIBLE_APPLIANCE_VERSION", + "INVALID_AGENT_VERSION": "INVALID_AGENT_VERSION", + "INVALID_DRIVER_VERSION": "INVALID_DRIVER_VERSION", + "MISSING_UPGRADE_PATH": "MISSING_UPGRADE_PATH", + "NOT_PROTECTED": "NOT_PROTECTED", + "PROCESS_SERVER_NO_HEARTBEAT": "PROCESS_SERVER_NO_HEARTBEAT", + "RCM_PROXY_NO_HEARTBEAT": "RCM_PROXY_NO_HEARTBEAT", + "REBOOT_REQUIRED": "REBOOT_REQUIRED", + "UNKNOWN": "UNKNOWN", + "UNSUPPORTED_PROTECTION_SCENARIO": "UNSUPPORTED_PROTECTION_SCENARIO" + } + }, + "AgentVersionStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "DEPRECATED": "DEPRECATED", + "NOT_SUPPORTED": "NOT_SUPPORTED", + "SECURITY_UPDATE_REQUIRED": "SECURITY_UPDATE_REQUIRED", + "SUPPORTED": "SUPPORTED", + "UPDATE_REQUIRED": "UPDATE_REQUIRED" + } + }, + "Alert": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AlertCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AlertProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "send_to_owners": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_email_addresses": { + "default": "none", + "param_type": "keyword_only" + }, + "locale": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "send_to_owners": { + "attr_type": "send_to_owners" + }, + "custom_email_addresses": { + "attr_type": "custom_email_addresses" + }, + "locale": { + "attr_type": "locale" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AlternateLocationRecoveryOption": { + "type": "Enum", + "methods": {}, + "properties": { + "CREATE_VM_IF_NOT_FOUND": "CREATE_VM_IF_NOT_FOUND", + "NO_ACTION": "NO_ACTION" + } + }, + "ApplianceCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplianceMonitoringDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "cpu_details": { + "attr_type": null + }, + "ram_details": { + "attr_type": null + }, + "datastore_snapshot": { + "attr_type": null + }, + "disks_replication_details": { + "attr_type": null + }, + "esxi_nfc_buffer": { + "attr_type": null + }, + "network_bandwidth": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplianceQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_type": { + "attr_type": "provider_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplianceResourceDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "capacity": { + "attr_type": null + }, + "process_utilization": { + "attr_type": null + }, + "total_utilization": { + "attr_type": null + }, + "status": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplianceSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplyRecoveryPointInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplyRecoveryPointInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ApplyRecoveryPointProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AsrJobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "affected_object_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "affected_object_details": { + "attr_type": "affected_object_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AutoProtectionOfDataDisk": { + "type": "Enum", + "methods": {}, + "properties": { + "DISABLED": "DISABLED", + "ENABLED": "ENABLED" + } + }, + "AutomationAccountAuthenticationType": { + "type": "Enum", + "methods": {}, + "properties": { + "RUN_AS_ACCOUNT": "RUN_AS_ACCOUNT", + "SYSTEM_ASSIGNED_IDENTITY": "SYSTEM_ASSIGNED_IDENTITY" + } + }, + "AutomationRunbookTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "cloud_service_name": { + "default": "none", + "param_type": "keyword_only" + }, + "subscription_id": { + "default": "none", + "param_type": "keyword_only" + }, + "account_name": { + "default": "none", + "param_type": "keyword_only" + }, + "runbook_id": { + "default": "none", + "param_type": "keyword_only" + }, + "runbook_name": { + "default": "none", + "param_type": "keyword_only" + }, + "job_id": { + "default": "none", + "param_type": "keyword_only" + }, + "job_output": { + "default": "none", + "param_type": "keyword_only" + }, + "is_primary_side_script": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "name": { + "attr_type": "name" + }, + "cloud_service_name": { + "attr_type": "cloud_service_name" + }, + "subscription_id": { + "attr_type": "subscription_id" + }, + "account_name": { + "attr_type": "account_name" + }, + "runbook_id": { + "attr_type": "runbook_id" + }, + "runbook_name": { + "attr_type": "runbook_name" + }, + "job_id": { + "attr_type": "job_id" + }, + "job_output": { + "attr_type": "job_output" + }, + "is_primary_side_script": { + "attr_type": "is_primary_side_script" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureFabricCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureFabricSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "container_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "zones": { + "default": "none", + "param_type": "keyword_only" + }, + "extended_locations": { + "default": "none", + "param_type": "keyword_only" + }, + "location_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "container_ids": { + "attr_type": "container_ids" + }, + "zones": { + "attr_type": "zones" + }, + "extended_locations": { + "attr_type": "extended_locations" + }, + "location_details": { + "attr_type": "location_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureToAzureCreateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_network_id": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_network_id": { + "attr_type": "primary_network_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureToAzureNetworkMappingSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_fabric_location": { + "attr_type": "primary_fabric_location" + }, + "recovery_fabric_location": { + "attr_type": "recovery_fabric_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureToAzureUpdateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_network_id": { + "attr_type": "primary_network_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureToAzureVmSyncedConfigDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "tags": { + "default": "none", + "param_type": "keyword_only" + }, + "input_endpoints": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "tags": { + "attr_type": "tags" + }, + "input_endpoints": { + "attr_type": "input_endpoints" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "AzureVmDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vhd_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_name": { + "default": "none", + "param_type": "keyword_only" + }, + "max_size_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_location": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "lun_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_target_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "vhd_type": { + "attr_type": "vhd_type" + }, + "vhd_id": { + "attr_type": "vhd_id" + }, + "disk_id": { + "attr_type": "disk_id" + }, + "vhd_name": { + "attr_type": "vhd_name" + }, + "max_size_mb": { + "attr_type": "max_size_mb" + }, + "target_disk_location": { + "attr_type": "target_disk_location" + }, + "target_disk_name": { + "attr_type": "target_disk_name" + }, + "lun_id": { + "attr_type": "lun_id" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "custom_target_disk_name": { + "attr_type": "custom_target_disk_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ChurnOptionSelected": { + "type": "Enum", + "methods": {}, + "properties": { + "HIGH": "HIGH", + "NORMAL": "NORMAL" + } + }, + "ComputeSizeErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "message": { + "default": "none", + "param_type": "keyword_only" + }, + "severity": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "message": { + "attr_type": "message" + }, + "severity": { + "attr_type": "severity" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ConfigurationSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ConfigureAlertRequest": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ConfigureAlertRequestProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "send_to_owners": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_email_addresses": { + "default": "none", + "param_type": "keyword_only" + }, + "locale": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "send_to_owners": { + "attr_type": "send_to_owners" + }, + "custom_email_addresses": { + "attr_type": "custom_email_addresses" + }, + "locale": { + "attr_type": "locale" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ConsistencyCheckTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vm_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vm_details": { + "attr_type": "vm_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateNetworkMappingInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_network_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "recovery_fabric_name": { + "attr_type": "recovery_fabric_name" + }, + "recovery_network_id": { + "attr_type": "recovery_network_id" + }, + "fabric_specific_details": { + "attr_type": "fabric_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreatePolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreatePolicyInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_input": { + "attr_type": "provider_specific_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionContainerInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionContainerInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_input": { + "attr_type": "provider_specific_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionContainerMappingInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_protection_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_protection_container_id": { + "attr_type": "target_protection_container_id" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "provider_specific_input": { + "attr_type": "provider_specific_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionIntentInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionIntentProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateProtectionIntentProviderSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateRecoveryPlanInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CreateRecoveryPlanInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_fabric_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_fabric_id": { + "default": null, + "param_type": "keyword_only" + }, + "groups": { + "default": null, + "param_type": "keyword_only" + }, + "failover_deployment_model": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "primary_fabric_id": { + "attr_type": "primary_fabric_id" + }, + "recovery_fabric_id": { + "attr_type": "recovery_fabric_id" + }, + "failover_deployment_model": { + "attr_type": "failover_deployment_model" + }, + "groups": { + "attr_type": "groups" + }, + "provider_specific_input": { + "attr_type": "provider_specific_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CriticalJobHistoryDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "job_name": { + "attr_type": null + }, + "job_id": { + "attr_type": null + }, + "start_time": { + "attr_type": null + }, + "job_status": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CurrentJobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "job_name": { + "attr_type": null + }, + "job_id": { + "attr_type": null + }, + "start_time": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "CurrentScenarioDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "scenario_name": { + "default": "none", + "param_type": "keyword_only" + }, + "job_id": { + "default": "none", + "param_type": "keyword_only" + }, + "start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "scenario_name": { + "attr_type": "scenario_name" + }, + "job_id": { + "attr_type": "job_id" + }, + "start_time": { + "attr_type": "start_time" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DataStore": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "symbolic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "uuid": { + "default": "none", + "param_type": "keyword_only" + }, + "capacity": { + "default": "none", + "param_type": "keyword_only" + }, + "free_space": { + "default": "none", + "param_type": "keyword_only" + }, + "type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "symbolic_name": { + "attr_type": "symbolic_name" + }, + "uuid": { + "attr_type": "uuid" + }, + "capacity": { + "attr_type": "capacity" + }, + "free_space": { + "attr_type": "free_space" + }, + "type": { + "attr_type": "type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DataStoreUtilizationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "total_snapshots_supported": { + "attr_type": null + }, + "total_snapshots_created": { + "attr_type": null + }, + "data_store_name": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DataSyncStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "FOR_DOWN_TIME": "FOR_DOWN_TIME", + "FOR_SYNCHRONIZATION": "FOR_SYNCHRONIZATION" + } + }, + "DisableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DisableProtectionInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_reason": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_provider_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disable_protection_reason": { + "attr_type": "disable_protection_reason" + }, + "replication_provider_input": { + "attr_type": "replication_provider_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DisableProtectionProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DisableProtectionReason": { + "type": "Enum", + "methods": {}, + "properties": { + "MIGRATION_COMPLETE": "MIGRATION_COMPLETE", + "NOT_SPECIFIED": "NOT_SPECIFIED" + } + }, + "DiscoverProtectableItemRequest": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DiscoverProtectableItemRequestProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "os_type": { + "attr_type": "os_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DiskAccountType": { + "type": "Enum", + "methods": {}, + "properties": { + "PREMIUM_LRS": "PREMIUM_LRS", + "STANDARD_LRS": "STANDARD_LRS", + "STANDARD_SSD_LRS": "STANDARD_SSD_LRS" + } + }, + "DiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "max_size_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "max_size_mb": { + "attr_type": "max_size_mb" + }, + "vhd_type": { + "attr_type": "vhd_type" + }, + "vhd_id": { + "attr_type": "vhd_id" + }, + "vhd_name": { + "attr_type": "vhd_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DiskEncryptionInfo": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_encryption_key_info": { + "default": "none", + "param_type": "keyword_only" + }, + "key_encryption_key_info": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_encryption_key_info": { + "attr_type": "disk_encryption_key_info" + }, + "key_encryption_key_info": { + "attr_type": "key_encryption_key_info" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DiskEncryptionKeyInfo": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "secret_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "key_vault_resource_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "secret_identifier": { + "attr_type": "secret_identifier" + }, + "key_vault_resource_arm_id": { + "attr_type": "key_vault_resource_arm_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DiskReplicationProgressHealth": { + "type": "Enum", + "methods": {}, + "properties": { + "IN_PROGRESS": "IN_PROGRESS", + "NONE": "NONE", + "NO_PROGRESS": "NO_PROGRESS", + "QUEUED": "QUEUED", + "SLOW_PROGRESS": "SLOW_PROGRESS" + } + }, + "DiskVolumeDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "label": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "label": { + "attr_type": "label" + }, + "name": { + "attr_type": "name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "Display": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider": { + "default": "none", + "param_type": "keyword_only" + }, + "resource": { + "default": "none", + "param_type": "keyword_only" + }, + "operation": { + "default": "none", + "param_type": "keyword_only" + }, + "description": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider": { + "attr_type": "provider" + }, + "resource": { + "attr_type": "resource" + }, + "operation": { + "attr_type": "operation" + }, + "description": { + "attr_type": "description" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "DraDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "forward_protected_item_count": { + "attr_type": null + }, + "reverse_protected_item_count": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EnableMigrationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EnableMigrationInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_id": { + "default": null, + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "policy_id": { + "attr_type": "policy_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EnableMigrationProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EnableProtectionInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "protectable_item_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "policy_id": { + "attr_type": "policy_id" + }, + "protectable_item_id": { + "attr_type": "protectable_item_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EnableProtectionProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EncryptionDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kek_state": { + "default": "none", + "param_type": "keyword_only" + }, + "kek_cert_thumbprint": { + "default": "none", + "param_type": "keyword_only" + }, + "kek_cert_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "kek_state": { + "attr_type": "kek_state" + }, + "kek_cert_thumbprint": { + "attr_type": "kek_cert_thumbprint" + }, + "kek_cert_expiry_date": { + "attr_type": "kek_cert_expiry_date" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ErrorAdditionalInfo": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "type": { + "attr_type": null + }, + "info": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ErrorDetail": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "code": { + "attr_type": null + }, + "message": { + "attr_type": null + }, + "target": { + "attr_type": null + }, + "details": { + "attr_type": null + }, + "additional_info": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ErrorResponse": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "error": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error": { + "attr_type": "error" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EthernetAddressType": { + "type": "Enum", + "methods": {}, + "properties": { + "DYNAMIC": "DYNAMIC", + "STATIC": "STATIC" + } + }, + "Event": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EventCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EventProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "event_code": { + "default": "none", + "param_type": "keyword_only" + }, + "description": { + "default": "none", + "param_type": "keyword_only" + }, + "event_type": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_object_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_object_correlation_id": { + "default": "none", + "param_type": "keyword_only" + }, + "severity": { + "default": "none", + "param_type": "keyword_only" + }, + "time_of_occurrence": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "event_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "event_code": { + "attr_type": "event_code" + }, + "description": { + "attr_type": "description" + }, + "event_type": { + "attr_type": "event_type" + }, + "affected_object_friendly_name": { + "attr_type": "affected_object_friendly_name" + }, + "affected_object_correlation_id": { + "attr_type": "affected_object_correlation_id" + }, + "severity": { + "attr_type": "severity" + }, + "time_of_occurrence": { + "attr_type": "time_of_occurrence" + }, + "fabric_id": { + "attr_type": "fabric_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "event_specific_details": { + "attr_type": "event_specific_details" + }, + "health_errors": { + "attr_type": "health_errors" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EventProviderSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EventQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "event_code": { + "default": "none", + "param_type": "keyword_only" + }, + "severity": { + "default": "none", + "param_type": "keyword_only" + }, + "event_type": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_object_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_object_correlation_id": { + "default": "none", + "param_type": "keyword_only" + }, + "start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "end_time": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "event_code": { + "attr_type": "event_code" + }, + "severity": { + "attr_type": "severity" + }, + "event_type": { + "attr_type": "event_type" + }, + "fabric_name": { + "attr_type": "fabric_name" + }, + "affected_object_friendly_name": { + "attr_type": "affected_object_friendly_name" + }, + "affected_object_correlation_id": { + "attr_type": "affected_object_correlation_id" + }, + "start_time": { + "attr_type": "start_time" + }, + "end_time": { + "attr_type": "end_time" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "EventSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExistingProtectionProfile": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_profile_id": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "protection_profile_id": { + "attr_type": "protection_profile_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExistingRecoveryAvailabilitySet": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExistingRecoveryProximityPlacementGroup": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "recovery_proximity_placement_group_id": { + "attr_type": "recovery_proximity_placement_group_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExistingRecoveryResourceGroup": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "recovery_resource_group_id": { + "attr_type": "recovery_resource_group_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExistingRecoveryVirtualNetwork": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_virtual_network_id": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "recovery_virtual_network_id": { + "attr_type": "recovery_virtual_network_id" + }, + "recovery_subnet_name": { + "attr_type": "recovery_subnet_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExistingStorageAccount": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "azure_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "azure_storage_account_id": { + "attr_type": "azure_storage_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExportJobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "affected_object_details": { + "default": "none", + "param_type": "keyword_only" + }, + "blob_uri": { + "default": "none", + "param_type": "keyword_only" + }, + "sas_token": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "blob_uri": { + "attr_type": "blob_uri" + }, + "sas_token": { + "attr_type": "sas_token" + }, + "affected_object_details": { + "attr_type": "affected_object_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExportJobOutputSerializationType": { + "type": "Enum", + "methods": {}, + "properties": { + "EXCEL": "EXCEL", + "JSON": "JSON", + "XML": "XML" + } + }, + "ExtendedLocation": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": null, + "param_type": "keyword_only" + }, + "type": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": "name" + }, + "type": { + "attr_type": "type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ExtendedLocationType": { + "type": "Enum", + "methods": {}, + "properties": { + "EDGE_ZONE": "EDGE_ZONE" + } + }, + "Fabric": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricCreationInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "custom_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "custom_details": { + "attr_type": "custom_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "encryption_details": { + "default": "none", + "param_type": "keyword_only" + }, + "rollover_encryption_details": { + "default": "none", + "param_type": "keyword_only" + }, + "internal_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "bcdr_state": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_details": { + "default": "none", + "param_type": "keyword_only" + }, + "health_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "health": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "encryption_details": { + "attr_type": "encryption_details" + }, + "rollover_encryption_details": { + "attr_type": "rollover_encryption_details" + }, + "internal_identifier": { + "attr_type": "internal_identifier" + }, + "bcdr_state": { + "attr_type": "bcdr_state" + }, + "custom_details": { + "attr_type": "custom_details" + }, + "health_error_details": { + "attr_type": "health_error_details" + }, + "health": { + "attr_type": "health" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "zone_to_zone_mappings": { + "default": "none", + "param_type": "keyword_only" + }, + "extended_location_mappings": { + "default": "none", + "param_type": "keyword_only" + }, + "location_details": { + "default": "none", + "param_type": "keyword_only" + }, + "fetch_agent_details": { + "default": "none", + "param_type": "keyword_only" + }, + "bios_id": { + "default": "none", + "param_type": "keyword_only" + }, + "fqdn": { + "default": "none", + "param_type": "keyword_only" + }, + "discovery_type": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "zone_to_zone_mappings": { + "attr_type": "zone_to_zone_mappings" + }, + "extended_location_mappings": { + "attr_type": "extended_location_mappings" + }, + "location_details": { + "attr_type": "location_details" + }, + "fetch_agent_details": { + "attr_type": "fetch_agent_details" + }, + "bios_id": { + "attr_type": "bios_id" + }, + "fqdn": { + "attr_type": "fqdn" + }, + "discovery_type": { + "attr_type": "discovery_type" + }, + "os_type": { + "attr_type": "os_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricReplicationGroupTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_task": { + "default": "none", + "param_type": "keyword_only" + }, + "skipped_reason": { + "default": "none", + "param_type": "keyword_only" + }, + "skipped_reason_string": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "skipped_reason": { + "attr_type": "skipped_reason" + }, + "skipped_reason_string": { + "attr_type": "skipped_reason_string" + }, + "job_task": { + "attr_type": "job_task" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricSpecificCreateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricSpecificCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FabricSpecificUpdateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FailoverDeploymentModel": { + "type": "Enum", + "methods": {}, + "properties": { + "CLASSIC": "CLASSIC", + "NOT_APPLICABLE": "NOT_APPLICABLE", + "RESOURCE_MANAGER": "RESOURCE_MANAGER" + } + }, + "FailoverJobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "affected_object_details": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_item_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "protected_item_details": { + "attr_type": "protected_item_details" + }, + "affected_object_details": { + "attr_type": "affected_object_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FailoverProcessServerRequest": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FailoverProcessServerRequestProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "source_process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vms_to_migrate": { + "default": "none", + "param_type": "keyword_only" + }, + "update_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "container_name": { + "attr_type": "container_name" + }, + "source_process_server_id": { + "attr_type": "source_process_server_id" + }, + "target_process_server_id": { + "attr_type": "target_process_server_id" + }, + "vms_to_migrate": { + "attr_type": "vms_to_migrate" + }, + "update_type": { + "attr_type": "update_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "FailoverReplicationProtectedItemDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_vm_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "network_connection_status": { + "default": "none", + "param_type": "keyword_only" + }, + "network_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "subnet": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_time": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": "name" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "test_vm_name": { + "attr_type": "test_vm_name" + }, + "test_vm_friendly_name": { + "attr_type": "test_vm_friendly_name" + }, + "network_connection_status": { + "attr_type": "network_connection_status" + }, + "network_friendly_name": { + "attr_type": "network_friendly_name" + }, + "subnet": { + "attr_type": "subnet" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "recovery_point_time": { + "attr_type": "recovery_point_time" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "GatewayOperationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "state": { + "attr_type": null + }, + "progress_percentage": { + "attr_type": null + }, + "time_elapsed": { + "attr_type": null + }, + "time_remaining": { + "attr_type": null + }, + "upload_speed": { + "attr_type": null + }, + "host_name": { + "attr_type": null + }, + "data_stores": { + "attr_type": null + }, + "vmware_read_throughput": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "GroupTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "child_tasks": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "child_tasks": { + "attr_type": "child_tasks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HealthError": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "inner_health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "error_source": { + "default": "none", + "param_type": "keyword_only" + }, + "error_type": { + "default": "none", + "param_type": "keyword_only" + }, + "error_level": { + "default": "none", + "param_type": "keyword_only" + }, + "error_category": { + "default": "none", + "param_type": "keyword_only" + }, + "error_code": { + "default": "none", + "param_type": "keyword_only" + }, + "summary_message": { + "default": "none", + "param_type": "keyword_only" + }, + "error_message": { + "default": "none", + "param_type": "keyword_only" + }, + "possible_causes": { + "default": "none", + "param_type": "keyword_only" + }, + "recommended_action": { + "default": "none", + "param_type": "keyword_only" + }, + "creation_time_utc": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_provider_error_message": { + "default": "none", + "param_type": "keyword_only" + }, + "entity_id": { + "default": "none", + "param_type": "keyword_only" + }, + "error_id": { + "default": "none", + "param_type": "keyword_only" + }, + "customer_resolvability": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "inner_health_errors": { + "attr_type": "inner_health_errors" + }, + "error_source": { + "attr_type": "error_source" + }, + "error_type": { + "attr_type": "error_type" + }, + "error_level": { + "attr_type": "error_level" + }, + "error_category": { + "attr_type": "error_category" + }, + "error_code": { + "attr_type": "error_code" + }, + "summary_message": { + "attr_type": "summary_message" + }, + "error_message": { + "attr_type": "error_message" + }, + "possible_causes": { + "attr_type": "possible_causes" + }, + "recommended_action": { + "attr_type": "recommended_action" + }, + "creation_time_utc": { + "attr_type": "creation_time_utc" + }, + "recovery_provider_error_message": { + "attr_type": "recovery_provider_error_message" + }, + "entity_id": { + "attr_type": "entity_id" + }, + "error_id": { + "attr_type": "error_id" + }, + "customer_resolvability": { + "attr_type": "customer_resolvability" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HealthErrorCategory": { + "type": "Enum", + "methods": {}, + "properties": { + "AGENT_AUTO_UPDATE_ARTIFACT_DELETED": "AGENT_AUTO_UPDATE_ARTIFACT_DELETED", + "AGENT_AUTO_UPDATE_INFRA": "AGENT_AUTO_UPDATE_INFRA", + "AGENT_AUTO_UPDATE_RUN_AS_ACCOUNT": "AGENT_AUTO_UPDATE_RUN_AS_ACCOUNT", + "AGENT_AUTO_UPDATE_RUN_AS_ACCOUNT_EXPIRED": "AGENT_AUTO_UPDATE_RUN_AS_ACCOUNT_EXPIRED", + "AGENT_AUTO_UPDATE_RUN_AS_ACCOUNT_EXPIRY": "AGENT_AUTO_UPDATE_RUN_AS_ACCOUNT_EXPIRY", + "CONFIGURATION": "CONFIGURATION", + "FABRIC_INFRASTRUCTURE": "FABRIC_INFRASTRUCTURE", + "NONE": "NONE", + "REPLICATION": "REPLICATION", + "TEST_FAILOVER": "TEST_FAILOVER", + "VERSION_EXPIRY": "VERSION_EXPIRY" + } + }, + "HealthErrorCustomerResolvability": { + "type": "Enum", + "methods": {}, + "properties": { + "ALLOWED": "ALLOWED", + "NOT_ALLOWED": "NOT_ALLOWED" + } + }, + "HealthErrorSummary": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "summary_code": { + "default": "none", + "param_type": "keyword_only" + }, + "category": { + "default": "none", + "param_type": "keyword_only" + }, + "severity": { + "default": "none", + "param_type": "keyword_only" + }, + "summary_message": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_resource_type": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_resource_subtype": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_resource_correlation_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "summary_code": { + "attr_type": "summary_code" + }, + "category": { + "attr_type": "category" + }, + "severity": { + "attr_type": "severity" + }, + "summary_message": { + "attr_type": "summary_message" + }, + "affected_resource_type": { + "attr_type": "affected_resource_type" + }, + "affected_resource_subtype": { + "attr_type": "affected_resource_subtype" + }, + "affected_resource_correlation_ids": { + "attr_type": "affected_resource_correlation_ids" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVHostDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "mars_agent_version": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplica2012EventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "container_name": { + "attr_type": "container_name" + }, + "fabric_name": { + "attr_type": "fabric_name" + }, + "remote_container_name": { + "attr_type": "remote_container_name" + }, + "remote_fabric_name": { + "attr_type": "remote_fabric_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplica2012R2EventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "container_name": { + "attr_type": "container_name" + }, + "fabric_name": { + "attr_type": "fabric_name" + }, + "remote_container_name": { + "attr_type": "remote_container_name" + }, + "remote_fabric_name": { + "attr_type": "remote_fabric_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureApplyRecoveryPointInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "secondary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_kek_certificate_pfx": { + "attr_type": "primary_kek_certificate_pfx" + }, + "secondary_kek_certificate_pfx": { + "attr_type": "secondary_kek_certificate_pfx" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureDiskInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureEnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "hv_host_vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_subnet_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_rdp_on_target_option": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_v1_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_v2_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "use_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "use_managed_disks_for_replication": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_to_include_for_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "hv_host_vm_id": { + "attr_type": "hv_host_vm_id" + }, + "vm_name": { + "attr_type": "vm_name" + }, + "os_type": { + "attr_type": "os_type" + }, + "vhd_id": { + "attr_type": "vhd_id" + }, + "target_storage_account_id": { + "attr_type": "target_storage_account_id" + }, + "target_azure_network_id": { + "attr_type": "target_azure_network_id" + }, + "target_azure_subnet_id": { + "attr_type": "target_azure_subnet_id" + }, + "enable_rdp_on_target_option": { + "attr_type": "enable_rdp_on_target_option" + }, + "target_azure_vm_name": { + "attr_type": "target_azure_vm_name" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "target_azure_v1_resource_group_id": { + "attr_type": "target_azure_v1_resource_group_id" + }, + "target_azure_v2_resource_group_id": { + "attr_type": "target_azure_v2_resource_group_id" + }, + "use_managed_disks": { + "attr_type": "use_managed_disks" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "use_managed_disks_for_replication": { + "attr_type": "use_managed_disks_for_replication" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disks_to_include_for_managed_disks": { + "attr_type": "disks_to_include_for_managed_disks" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "seed_managed_disk_tags": { + "attr_type": "seed_managed_disk_tags" + }, + "target_managed_disk_tags": { + "attr_type": "target_managed_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "container_name": { + "attr_type": "container_name" + }, + "fabric_name": { + "attr_type": "fabric_name" + }, + "remote_container_name": { + "attr_type": "remote_container_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureFailbackProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "data_sync_option": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_vm_creation_option": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_id_for_alternate_recovery": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "data_sync_option": { + "attr_type": "data_sync_option" + }, + "recovery_vm_creation_option": { + "attr_type": "recovery_vm_creation_option" + }, + "provider_id_for_alternate_recovery": { + "attr_type": "provider_id_for_alternate_recovery" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureManagedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_managed_disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "seed_managed_disk_id": { + "attr_type": "seed_managed_disk_id" + }, + "replica_disk_type": { + "attr_type": "replica_disk_type" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzurePlannedFailoverProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "secondary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_upgrade_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_kek_certificate_pfx": { + "attr_type": "primary_kek_certificate_pfx" + }, + "secondary_kek_certificate_pfx": { + "attr_type": "secondary_kek_certificate_pfx" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "os_upgrade_version": { + "attr_type": "os_upgrade_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzurePolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_history_duration_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_interval": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "encryption": { + "default": "none", + "param_type": "keyword_only" + }, + "active_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history_duration_in_hours": { + "attr_type": "recovery_point_history_duration_in_hours" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "replication_interval": { + "attr_type": "replication_interval" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "encryption": { + "attr_type": "encryption" + }, + "active_storage_account_id": { + "attr_type": "active_storage_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzurePolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_history_duration": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_interval": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "storage_accounts": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history_duration": { + "attr_type": "recovery_point_history_duration" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "replication_interval": { + "attr_type": "replication_interval" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "storage_accounts": { + "attr_type": "storage_accounts" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "azure_vm_disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_storage_account": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "last_replicated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "rpo_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "last_rpo_calculated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_details": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_recovery_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_source_nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "encryption": { + "default": "none", + "param_type": "keyword_only" + }, + "o_s_details": { + "default": "none", + "param_type": "keyword_only" + }, + "source_vm_ram_size_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "source_vm_cpu_count": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_rdp_on_target_option": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "use_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "all_available_os_upgrade_configurations": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "azure_vm_disk_details": { + "attr_type": "azure_vm_disk_details" + }, + "recovery_azure_vm_name": { + "attr_type": "recovery_azure_vm_name" + }, + "recovery_azure_vm_size": { + "attr_type": "recovery_azure_vm_size" + }, + "recovery_azure_storage_account": { + "attr_type": "recovery_azure_storage_account" + }, + "recovery_azure_log_storage_account_id": { + "attr_type": "recovery_azure_log_storage_account_id" + }, + "last_replicated_time": { + "attr_type": "last_replicated_time" + }, + "rpo_in_seconds": { + "attr_type": "rpo_in_seconds" + }, + "last_rpo_calculated_time": { + "attr_type": "last_rpo_calculated_time" + }, + "vm_id": { + "attr_type": "vm_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "initial_replication_details": { + "attr_type": "initial_replication_details" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "selected_recovery_azure_network_id": { + "attr_type": "selected_recovery_azure_network_id" + }, + "selected_source_nic_id": { + "attr_type": "selected_source_nic_id" + }, + "encryption": { + "attr_type": "encryption" + }, + "o_s_details": { + "attr_type": "o_s_details" + }, + "source_vm_ram_size_in_mb": { + "attr_type": "source_vm_ram_size_in_mb" + }, + "source_vm_cpu_count": { + "attr_type": "source_vm_cpu_count" + }, + "enable_rdp_on_target_option": { + "attr_type": "enable_rdp_on_target_option" + }, + "recovery_azure_resource_group_id": { + "attr_type": "recovery_azure_resource_group_id" + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "use_managed_disks": { + "attr_type": "use_managed_disks" + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "last_recovery_point_received": { + "attr_type": null + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "seed_managed_disk_tags": { + "attr_type": "seed_managed_disk_tags" + }, + "target_managed_disk_tags": { + "attr_type": "target_managed_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "protected_managed_disks": { + "attr_type": "protected_managed_disks" + }, + "all_available_os_upgrade_configurations": { + "attr_type": "all_available_os_upgrade_configurations" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureReprotectInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "hv_host_vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "v_hd_id": { + "default": "none", + "param_type": "keyword_only" + }, + "storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "hv_host_vm_id": { + "attr_type": "hv_host_vm_id" + }, + "vm_name": { + "attr_type": "vm_name" + }, + "os_type": { + "attr_type": "os_type" + }, + "v_hd_id": { + "attr_type": "v_hd_id" + }, + "storage_account_id": { + "attr_type": "storage_account_id" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureRpRecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "LATEST": "LATEST", + "LATEST_APPLICATION_CONSISTENT": "LATEST_APPLICATION_CONSISTENT", + "LATEST_PROCESSED": "LATEST_PROCESSED" + } + }, + "HyperVReplicaAzureTestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "secondary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_upgrade_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_kek_certificate_pfx": { + "attr_type": "primary_kek_certificate_pfx" + }, + "secondary_kek_certificate_pfx": { + "attr_type": "secondary_kek_certificate_pfx" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "os_upgrade_version": { + "attr_type": "os_upgrade_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureUnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "secondary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_kek_certificate_pfx": { + "attr_type": "primary_kek_certificate_pfx" + }, + "secondary_kek_certificate_pfx": { + "attr_type": "secondary_kek_certificate_pfx" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaAzureUpdateReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_azure_v1_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_v2_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "use_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_id_to_disk_encryption_map": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_azure_v1_resource_group_id": { + "attr_type": "recovery_azure_v1_resource_group_id" + }, + "recovery_azure_v2_resource_group_id": { + "attr_type": "recovery_azure_v2_resource_group_id" + }, + "use_managed_disks": { + "attr_type": "use_managed_disks" + }, + "disk_id_to_disk_encryption_map": { + "attr_type": "disk_id_to_disk_encryption_map" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "target_managed_disk_tags": { + "attr_type": "target_managed_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaBaseEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "remote_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "container_name": { + "attr_type": "container_name" + }, + "fabric_name": { + "attr_type": "fabric_name" + }, + "remote_container_name": { + "attr_type": "remote_container_name" + }, + "remote_fabric_name": { + "attr_type": "remote_fabric_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaBasePolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_points": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "compression": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_method": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_import_path": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_export_path": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_port": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_deletion_option": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_points": { + "attr_type": "recovery_points" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "compression": { + "attr_type": "compression" + }, + "initial_replication_method": { + "attr_type": "initial_replication_method" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "offline_replication_import_path": { + "attr_type": "offline_replication_import_path" + }, + "offline_replication_export_path": { + "attr_type": "offline_replication_export_path" + }, + "replication_port": { + "attr_type": "replication_port" + }, + "allowed_authentication_type": { + "attr_type": "allowed_authentication_type" + }, + "replica_deletion_option": { + "attr_type": "replica_deletion_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaBaseReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "last_replicated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_details": { + "default": "none", + "param_type": "keyword_only" + }, + "v_m_disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "last_replicated_time": { + "attr_type": "last_replicated_time" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "vm_id": { + "attr_type": "vm_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "initial_replication_details": { + "attr_type": "initial_replication_details" + }, + "v_m_disk_details": { + "attr_type": "v_m_disk_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaBluePolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replication_frequency_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_points": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "compression": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_method": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_import_path": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_export_path": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_port": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_deletion_option": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "replication_frequency_in_seconds": { + "attr_type": "replication_frequency_in_seconds" + }, + "recovery_points": { + "attr_type": "recovery_points" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "compression": { + "attr_type": "compression" + }, + "initial_replication_method": { + "attr_type": "initial_replication_method" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "offline_replication_import_path": { + "attr_type": "offline_replication_import_path" + }, + "offline_replication_export_path": { + "attr_type": "offline_replication_export_path" + }, + "replication_port": { + "attr_type": "replication_port" + }, + "allowed_authentication_type": { + "attr_type": "allowed_authentication_type" + }, + "replica_deletion_option": { + "attr_type": "replica_deletion_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaBluePolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_points": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "compression": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_method": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_import_path": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_export_path": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_port": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_deletion": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_frequency_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "replication_frequency_in_seconds": { + "attr_type": "replication_frequency_in_seconds" + }, + "recovery_points": { + "attr_type": "recovery_points" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "compression": { + "attr_type": "compression" + }, + "initial_replication_method": { + "attr_type": "initial_replication_method" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "offline_replication_import_path": { + "attr_type": "offline_replication_import_path" + }, + "offline_replication_export_path": { + "attr_type": "offline_replication_export_path" + }, + "replication_port": { + "attr_type": "replication_port" + }, + "allowed_authentication_type": { + "attr_type": "allowed_authentication_type" + }, + "replica_deletion": { + "attr_type": "replica_deletion" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaBlueReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "last_replicated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_details": { + "default": "none", + "param_type": "keyword_only" + }, + "v_m_disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "last_replicated_time": { + "attr_type": "last_replicated_time" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "vm_id": { + "attr_type": "vm_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "initial_replication_details": { + "attr_type": "initial_replication_details" + }, + "v_m_disk_details": { + "attr_type": "v_m_disk_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaPolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_points": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "compression": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_method": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_import_path": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_export_path": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_port": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_deletion_option": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_points": { + "attr_type": "recovery_points" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "compression": { + "attr_type": "compression" + }, + "initial_replication_method": { + "attr_type": "initial_replication_method" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "offline_replication_import_path": { + "attr_type": "offline_replication_import_path" + }, + "offline_replication_export_path": { + "attr_type": "offline_replication_export_path" + }, + "replication_port": { + "attr_type": "replication_port" + }, + "allowed_authentication_type": { + "attr_type": "allowed_authentication_type" + }, + "replica_deletion_option": { + "attr_type": "replica_deletion_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaPolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_points": { + "default": "none", + "param_type": "keyword_only" + }, + "application_consistent_snapshot_frequency_in_hours": { + "default": "none", + "param_type": "keyword_only" + }, + "compression": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_method": { + "default": "none", + "param_type": "keyword_only" + }, + "online_replication_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_import_path": { + "default": "none", + "param_type": "keyword_only" + }, + "offline_replication_export_path": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_port": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_authentication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_deletion": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_points": { + "attr_type": "recovery_points" + }, + "application_consistent_snapshot_frequency_in_hours": { + "attr_type": "application_consistent_snapshot_frequency_in_hours" + }, + "compression": { + "attr_type": "compression" + }, + "initial_replication_method": { + "attr_type": "initial_replication_method" + }, + "online_replication_start_time": { + "attr_type": "online_replication_start_time" + }, + "offline_replication_import_path": { + "attr_type": "offline_replication_import_path" + }, + "offline_replication_export_path": { + "attr_type": "offline_replication_export_path" + }, + "replication_port": { + "attr_type": "replication_port" + }, + "allowed_authentication_type": { + "attr_type": "allowed_authentication_type" + }, + "replica_deletion": { + "attr_type": "replica_deletion" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVReplicaReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "last_replicated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_details": { + "default": "none", + "param_type": "keyword_only" + }, + "v_m_disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "last_replicated_time": { + "attr_type": "last_replicated_time" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "vm_id": { + "attr_type": "vm_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "initial_replication_details": { + "attr_type": "initial_replication_details" + }, + "v_m_disk_details": { + "attr_type": "v_m_disk_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVSiteDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "hyper_v_hosts": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "hyper_v_hosts": { + "attr_type": "hyper_v_hosts" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "HyperVVirtualMachineDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "source_item_id": { + "default": "none", + "param_type": "keyword_only" + }, + "generation": { + "default": "none", + "param_type": "keyword_only" + }, + "os_details": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "has_physical_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "has_fibre_channel_adapter": { + "default": "none", + "param_type": "keyword_only" + }, + "has_shared_vhd": { + "default": "none", + "param_type": "keyword_only" + }, + "hyper_v_host_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "source_item_id": { + "attr_type": "source_item_id" + }, + "generation": { + "attr_type": "generation" + }, + "os_details": { + "attr_type": "os_details" + }, + "disk_details": { + "attr_type": "disk_details" + }, + "has_physical_disk": { + "attr_type": "has_physical_disk" + }, + "has_fibre_channel_adapter": { + "attr_type": "has_fibre_channel_adapter" + }, + "has_shared_vhd": { + "attr_type": "has_shared_vhd" + }, + "hyper_v_host_id": { + "attr_type": "hyper_v_host_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "IPConfigDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "is_primary": { + "default": "none", + "param_type": "keyword_only" + }, + "subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address_type": { + "default": "none", + "param_type": "keyword_only" + }, + "is_seleted_for_failover": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_ip_address_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_public_ip_address_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_lb_backend_address_pool_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_public_ip_address_id": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_lb_backend_address_pool_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": "name" + }, + "is_primary": { + "attr_type": "is_primary" + }, + "subnet_name": { + "attr_type": "subnet_name" + }, + "static_ip_address": { + "attr_type": "static_ip_address" + }, + "ip_address_type": { + "attr_type": "ip_address_type" + }, + "is_seleted_for_failover": { + "attr_type": "is_seleted_for_failover" + }, + "recovery_subnet_name": { + "attr_type": "recovery_subnet_name" + }, + "recovery_static_ip_address": { + "attr_type": "recovery_static_ip_address" + }, + "recovery_ip_address_type": { + "attr_type": "recovery_ip_address_type" + }, + "recovery_public_ip_address_id": { + "attr_type": "recovery_public_ip_address_id" + }, + "recovery_lb_backend_address_pool_ids": { + "attr_type": "recovery_lb_backend_address_pool_ids" + }, + "tfo_subnet_name": { + "attr_type": "tfo_subnet_name" + }, + "tfo_static_ip_address": { + "attr_type": "tfo_static_ip_address" + }, + "tfo_public_ip_address_id": { + "attr_type": "tfo_public_ip_address_id" + }, + "tfo_lb_backend_address_pool_ids": { + "attr_type": "tfo_lb_backend_address_pool_ids" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "IPConfigInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "ip_config_name": { + "default": "none", + "param_type": "keyword_only" + }, + "is_primary": { + "default": "none", + "param_type": "keyword_only" + }, + "is_seleted_for_failover": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_public_ip_address_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_lb_backend_address_pool_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_public_ip_address_id": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_lb_backend_address_pool_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "ip_config_name": { + "attr_type": "ip_config_name" + }, + "is_primary": { + "attr_type": "is_primary" + }, + "is_seleted_for_failover": { + "attr_type": "is_seleted_for_failover" + }, + "recovery_subnet_name": { + "attr_type": "recovery_subnet_name" + }, + "recovery_static_ip_address": { + "attr_type": "recovery_static_ip_address" + }, + "recovery_public_ip_address_id": { + "attr_type": "recovery_public_ip_address_id" + }, + "recovery_lb_backend_address_pool_ids": { + "attr_type": "recovery_lb_backend_address_pool_ids" + }, + "tfo_subnet_name": { + "attr_type": "tfo_subnet_name" + }, + "tfo_static_ip_address": { + "attr_type": "tfo_static_ip_address" + }, + "tfo_public_ip_address_id": { + "attr_type": "tfo_public_ip_address_id" + }, + "tfo_lb_backend_address_pool_ids": { + "attr_type": "tfo_lb_backend_address_pool_ids" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "IdentityProviderDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "tenant_id": { + "default": "none", + "param_type": "keyword_only" + }, + "application_id": { + "default": "none", + "param_type": "keyword_only" + }, + "object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "audience": { + "default": "none", + "param_type": "keyword_only" + }, + "aad_authority": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "tenant_id": { + "attr_type": "tenant_id" + }, + "application_id": { + "attr_type": "application_id" + }, + "object_id": { + "attr_type": "object_id" + }, + "audience": { + "attr_type": "audience" + }, + "aad_authority": { + "attr_type": "aad_authority" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "IdentityProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "tenant_id": { + "default": null, + "param_type": "keyword_only" + }, + "application_id": { + "default": null, + "param_type": "keyword_only" + }, + "object_id": { + "default": null, + "param_type": "keyword_only" + }, + "audience": { + "default": null, + "param_type": "keyword_only" + }, + "aad_authority": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "tenant_id": { + "attr_type": "tenant_id" + }, + "application_id": { + "attr_type": "application_id" + }, + "object_id": { + "attr_type": "object_id" + }, + "audience": { + "attr_type": "audience" + }, + "aad_authority": { + "attr_type": "aad_authority" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "post_update_reboot_status": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "agent_version": { + "attr_type": "agent_version" + }, + "agent_update_status": { + "attr_type": "agent_update_status" + }, + "post_update_reboot_status": { + "attr_type": "post_update_reboot_status" + }, + "agent_expiry_date": { + "attr_type": "agent_expiry_date" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2ApplyRecoveryPointInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2DiskInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2EnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "master_target_id": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_subnet_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_rdp_on_target_option": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_v1_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_azure_v2_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "master_target_id": { + "attr_type": "master_target_id" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "storage_account_id": { + "attr_type": "storage_account_id" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "target_azure_network_id": { + "attr_type": "target_azure_network_id" + }, + "target_azure_subnet_id": { + "attr_type": "target_azure_subnet_id" + }, + "enable_rdp_on_target_option": { + "attr_type": "enable_rdp_on_target_option" + }, + "target_azure_vm_name": { + "attr_type": "target_azure_vm_name" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "target_azure_v1_resource_group_id": { + "attr_type": "target_azure_v1_resource_group_id" + }, + "target_azure_v2_resource_group_id": { + "attr_type": "target_azure_v2_resource_group_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "seed_managed_disk_tags": { + "attr_type": "seed_managed_disk_tags" + }, + "target_managed_disk_tags": { + "attr_type": "target_managed_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2EventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "event_type": { + "default": "none", + "param_type": "keyword_only" + }, + "category": { + "default": "none", + "param_type": "keyword_only" + }, + "component": { + "default": "none", + "param_type": "keyword_only" + }, + "corrective_action": { + "default": "none", + "param_type": "keyword_only" + }, + "details": { + "default": "none", + "param_type": "keyword_only" + }, + "summary": { + "default": "none", + "param_type": "keyword_only" + }, + "site_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "event_type": { + "attr_type": "event_type" + }, + "category": { + "attr_type": "category" + }, + "component": { + "attr_type": "component" + }, + "corrective_action": { + "attr_type": "corrective_action" + }, + "details": { + "attr_type": "details" + }, + "summary": { + "attr_type": "summary" + }, + "site_name": { + "attr_type": "site_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2ManagedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_managed_disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "seed_managed_disk_id": { + "attr_type": "seed_managed_disk_id" + }, + "replica_disk_type": { + "attr_type": "replica_disk_type" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "target_disk_name": { + "attr_type": "target_disk_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2PolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_threshold_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "recovery_point_threshold_in_minutes": { + "attr_type": "recovery_point_threshold_in_minutes" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2PolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "multi_vm_sync_status": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_point_threshold_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_threshold_in_minutes": { + "attr_type": "recovery_point_threshold_in_minutes" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2ProtectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_stage": { + "default": "none", + "param_type": "keyword_only" + }, + "health_error_code": { + "default": "none", + "param_type": "keyword_only" + }, + "rpo_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_required": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_progress_percentage": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_duration_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "file_system_capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "source_data_in_mega_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "ps_data_in_mega_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "target_data_in_mega_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_resized": { + "default": "none", + "param_type": "keyword_only" + }, + "last_rpo_calculated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_processed_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_total_transferred_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_last15_minutes_transferred_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_last_data_transfer_time_utc": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "progress_health": { + "default": "none", + "param_type": "keyword_only" + }, + "progress_status": { + "default": "none", + "param_type": "keyword_only" + }, + "seconds_to_take_switch_provider": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "disk_name": { + "attr_type": "disk_name" + }, + "protection_stage": { + "attr_type": "protection_stage" + }, + "health_error_code": { + "attr_type": "health_error_code" + }, + "rpo_in_seconds": { + "attr_type": "rpo_in_seconds" + }, + "resync_required": { + "attr_type": "resync_required" + }, + "resync_progress_percentage": { + "attr_type": "resync_progress_percentage" + }, + "resync_duration_in_seconds": { + "attr_type": "resync_duration_in_seconds" + }, + "disk_capacity_in_bytes": { + "attr_type": "disk_capacity_in_bytes" + }, + "file_system_capacity_in_bytes": { + "attr_type": "file_system_capacity_in_bytes" + }, + "source_data_in_mega_bytes": { + "attr_type": "source_data_in_mega_bytes" + }, + "ps_data_in_mega_bytes": { + "attr_type": "ps_data_in_mega_bytes" + }, + "target_data_in_mega_bytes": { + "attr_type": "target_data_in_mega_bytes" + }, + "disk_resized": { + "attr_type": "disk_resized" + }, + "last_rpo_calculated_time": { + "attr_type": "last_rpo_calculated_time" + }, + "resync_processed_bytes": { + "attr_type": "resync_processed_bytes" + }, + "resync_total_transferred_bytes": { + "attr_type": "resync_total_transferred_bytes" + }, + "resync_last15_minutes_transferred_bytes": { + "attr_type": "resync_last15_minutes_transferred_bytes" + }, + "resync_last_data_transfer_time_utc": { + "attr_type": "resync_last_data_transfer_time_utc" + }, + "resync_start_time": { + "attr_type": "resync_start_time" + }, + "progress_health": { + "attr_type": "progress_health" + }, + "progress_status": { + "attr_type": "progress_status" + }, + "seconds_to_take_switch_provider": { + "attr_type": "seconds_to_take_switch_provider" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2RecoveryPointDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "is_multi_vm_sync_point": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "is_multi_vm_sync_point": { + "attr_type": "is_multi_vm_sync_point" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2ReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "infrastructure_vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "v_center_infrastructure_id": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_stage": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_progress_percentage": { + "default": "none", + "param_type": "keyword_only" + }, + "rpo_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "compressed_data_rate_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "uncompressed_data_rate_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "is_agent_update_required": { + "default": "none", + "param_type": "keyword_only" + }, + "is_reboot_after_update_required": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_resized": { + "default": "none", + "param_type": "keyword_only" + }, + "master_target_id": { + "default": "none", + "param_type": "keyword_only" + }, + "source_vm_cpu_count": { + "default": "none", + "param_type": "keyword_only" + }, + "source_vm_ram_size_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_name": { + "default": "none", + "param_type": "keyword_only" + }, + "os_disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "azure_vm_disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_storage_account": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_recovery_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_tfo_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_source_nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "discovery_type": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_rdp_on_target_option": { + "default": "none", + "param_type": "keyword_only" + }, + "datastores": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "use_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "validation_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "last_rpo_calculated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "last_update_received_time": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_version": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "firmware_type": { + "default": "none", + "param_type": "keyword_only" + }, + "azure_vm_generation": { + "default": "none", + "param_type": "keyword_only" + }, + "is_additional_stats_available": { + "default": "none", + "param_type": "keyword_only" + }, + "total_data_transferred": { + "default": "none", + "param_type": "keyword_only" + }, + "total_progress_health": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "switch_provider_blocking_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "switch_provider_details": { + "default": "none", + "param_type": "keyword_only" + }, + "supported_os_versions": { + "default": "none", + "param_type": "keyword_only" + }, + "all_available_os_upgrade_configurations": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "infrastructure_vm_id": { + "attr_type": "infrastructure_vm_id" + }, + "v_center_infrastructure_id": { + "attr_type": "v_center_infrastructure_id" + }, + "protection_stage": { + "attr_type": "protection_stage" + }, + "vm_id": { + "attr_type": "vm_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "resync_progress_percentage": { + "attr_type": "resync_progress_percentage" + }, + "rpo_in_seconds": { + "attr_type": "rpo_in_seconds" + }, + "compressed_data_rate_in_mb": { + "attr_type": "compressed_data_rate_in_mb" + }, + "uncompressed_data_rate_in_mb": { + "attr_type": "uncompressed_data_rate_in_mb" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "agent_version": { + "attr_type": "agent_version" + }, + "agent_expiry_date": { + "attr_type": "agent_expiry_date" + }, + "is_agent_update_required": { + "attr_type": "is_agent_update_required" + }, + "is_reboot_after_update_required": { + "attr_type": "is_reboot_after_update_required" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "process_server_name": { + "attr_type": "process_server_name" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "protected_disks": { + "attr_type": "protected_disks" + }, + "disk_resized": { + "attr_type": "disk_resized" + }, + "master_target_id": { + "attr_type": "master_target_id" + }, + "source_vm_cpu_count": { + "attr_type": "source_vm_cpu_count" + }, + "source_vm_ram_size_in_mb": { + "attr_type": "source_vm_ram_size_in_mb" + }, + "os_type": { + "attr_type": "os_type" + }, + "vhd_name": { + "attr_type": "vhd_name" + }, + "os_disk_id": { + "attr_type": "os_disk_id" + }, + "azure_vm_disk_details": { + "attr_type": "azure_vm_disk_details" + }, + "recovery_azure_vm_name": { + "attr_type": "recovery_azure_vm_name" + }, + "recovery_azure_vm_size": { + "attr_type": "recovery_azure_vm_size" + }, + "recovery_azure_storage_account": { + "attr_type": "recovery_azure_storage_account" + }, + "recovery_azure_log_storage_account_id": { + "attr_type": "recovery_azure_log_storage_account_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "selected_recovery_azure_network_id": { + "attr_type": "selected_recovery_azure_network_id" + }, + "selected_tfo_azure_network_id": { + "attr_type": "selected_tfo_azure_network_id" + }, + "selected_source_nic_id": { + "attr_type": "selected_source_nic_id" + }, + "discovery_type": { + "attr_type": "discovery_type" + }, + "enable_rdp_on_target_option": { + "attr_type": "enable_rdp_on_target_option" + }, + "datastores": { + "attr_type": "datastores" + }, + "target_vm_id": { + "attr_type": "target_vm_id" + }, + "recovery_azure_resource_group_id": { + "attr_type": "recovery_azure_resource_group_id" + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "use_managed_disks": { + "attr_type": "use_managed_disks" + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "validation_errors": { + "attr_type": "validation_errors" + }, + "last_rpo_calculated_time": { + "attr_type": "last_rpo_calculated_time" + }, + "last_update_received_time": { + "attr_type": "last_update_received_time" + }, + "replica_id": { + "attr_type": "replica_id" + }, + "os_version": { + "attr_type": "os_version" + }, + "protected_managed_disks": { + "attr_type": "protected_managed_disks" + }, + "last_recovery_point_received": { + "attr_type": null + }, + "firmware_type": { + "attr_type": "firmware_type" + }, + "azure_vm_generation": { + "attr_type": "azure_vm_generation" + }, + "is_additional_stats_available": { + "attr_type": "is_additional_stats_available" + }, + "total_data_transferred": { + "attr_type": "total_data_transferred" + }, + "total_progress_health": { + "attr_type": "total_progress_health" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "seed_managed_disk_tags": { + "attr_type": "seed_managed_disk_tags" + }, + "target_managed_disk_tags": { + "attr_type": "target_managed_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "switch_provider_blocking_error_details": { + "attr_type": "switch_provider_blocking_error_details" + }, + "switch_provider_details": { + "attr_type": "switch_provider_details" + }, + "supported_os_versions": { + "attr_type": "supported_os_versions" + }, + "all_available_os_upgrade_configurations": { + "attr_type": "all_available_os_upgrade_configurations" + }, + "os_name": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2ReprotectInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "master_target_id": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "master_target_id": { + "attr_type": "master_target_id" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "storage_account_id": { + "attr_type": "storage_account_id" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2SwitchProviderBlockingErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_code": { + "attr_type": null + }, + "error_message": { + "attr_type": null + }, + "possible_causes": { + "attr_type": null + }, + "recommended_action": { + "attr_type": null + }, + "error_message_parameters": { + "attr_type": null + }, + "error_tags": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2SwitchProviderDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_vault_id": { + "attr_type": null + }, + "target_resource_id": { + "attr_type": null + }, + "target_fabric_id": { + "attr_type": null + }, + "target_appliance_id": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2SwitchProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_vault_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_fabric_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_appliance_id": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "target_vault_id": { + "attr_type": "target_vault_id" + }, + "target_fabric_id": { + "attr_type": "target_fabric_id" + }, + "target_appliance_id": { + "attr_type": "target_appliance_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2TestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_upgrade_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "os_upgrade_version": { + "attr_type": "os_upgrade_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2UnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_upgrade_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "os_upgrade_version": { + "attr_type": "os_upgrade_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageAzureV2UpdateReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_azure_v1_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_v2_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "use_managed_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_managed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_azure_v1_resource_group_id": { + "attr_type": "recovery_azure_v1_resource_group_id" + }, + "recovery_azure_v2_resource_group_id": { + "attr_type": "recovery_azure_v2_resource_group_id" + }, + "use_managed_disks": { + "attr_type": "use_managed_disks" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "target_managed_disk_tags": { + "attr_type": "target_managed_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageBasePolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_threshold_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_threshold_in_minutes": { + "attr_type": "recovery_point_threshold_in_minutes" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageDisableProtectionProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replica_vm_deletion_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "replica_vm_deletion_status": { + "attr_type": "replica_vm_deletion_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_size_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_configuration": { + "default": "none", + "param_type": "keyword_only" + }, + "volume_list": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "disk_name": { + "attr_type": "disk_name" + }, + "disk_size_in_mb": { + "attr_type": "disk_size_in_mb" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disk_configuration": { + "attr_type": "disk_configuration" + }, + "volume_list": { + "attr_type": "volume_list" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageDiskExclusionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "volume_options": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_signature_options": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "volume_options": { + "attr_type": "volume_options" + }, + "disk_signature_options": { + "attr_type": "disk_signature_options" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageDiskSignatureExclusionOptions": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_signature": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_signature": { + "attr_type": "disk_signature" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageEnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "master_target_id": { + "default": null, + "param_type": "keyword_only" + }, + "process_server_id": { + "default": null, + "param_type": "keyword_only" + }, + "retention_drive": { + "default": null, + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": null, + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": null, + "param_type": "keyword_only" + }, + "vm_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "datastore_name": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_exclusion_input": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vm_friendly_name": { + "attr_type": "vm_friendly_name" + }, + "master_target_id": { + "attr_type": "master_target_id" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "retention_drive": { + "attr_type": "retention_drive" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "datastore_name": { + "attr_type": "datastore_name" + }, + "disk_exclusion_input": { + "attr_type": "disk_exclusion_input" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageFabricSwitchProviderBlockingErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_code": { + "attr_type": null + }, + "error_message": { + "attr_type": null + }, + "possible_causes": { + "attr_type": null + }, + "recommended_action": { + "attr_type": null + }, + "error_message_parameters": { + "attr_type": null + }, + "error_tags": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMagePolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_threshold_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_threshold_in_minutes": { + "attr_type": "recovery_point_threshold_in_minutes" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMagePolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "multi_vm_sync_status": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_point_threshold_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_threshold_in_minutes": { + "attr_type": "recovery_point_threshold_in_minutes" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageProtectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_stage": { + "default": "none", + "param_type": "keyword_only" + }, + "health_error_code": { + "default": "none", + "param_type": "keyword_only" + }, + "rpo_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_required": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_progress_percentage": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_duration_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "file_system_capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "source_data_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "ps_data_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "target_data_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_resized": { + "default": "none", + "param_type": "keyword_only" + }, + "last_rpo_calculated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_processed_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_total_transferred_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_last15_minutes_transferred_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_last_data_transfer_time_utc": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "progress_health": { + "default": "none", + "param_type": "keyword_only" + }, + "progress_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "disk_name": { + "attr_type": "disk_name" + }, + "protection_stage": { + "attr_type": "protection_stage" + }, + "health_error_code": { + "attr_type": "health_error_code" + }, + "rpo_in_seconds": { + "attr_type": "rpo_in_seconds" + }, + "resync_required": { + "attr_type": "resync_required" + }, + "resync_progress_percentage": { + "attr_type": "resync_progress_percentage" + }, + "resync_duration_in_seconds": { + "attr_type": "resync_duration_in_seconds" + }, + "disk_capacity_in_bytes": { + "attr_type": "disk_capacity_in_bytes" + }, + "file_system_capacity_in_bytes": { + "attr_type": "file_system_capacity_in_bytes" + }, + "source_data_in_mb": { + "attr_type": "source_data_in_mb" + }, + "ps_data_in_mb": { + "attr_type": "ps_data_in_mb" + }, + "target_data_in_mb": { + "attr_type": "target_data_in_mb" + }, + "disk_resized": { + "attr_type": "disk_resized" + }, + "last_rpo_calculated_time": { + "attr_type": "last_rpo_calculated_time" + }, + "resync_processed_bytes": { + "attr_type": "resync_processed_bytes" + }, + "resync_total_transferred_bytes": { + "attr_type": "resync_total_transferred_bytes" + }, + "resync_last15_minutes_transferred_bytes": { + "attr_type": "resync_last15_minutes_transferred_bytes" + }, + "resync_last_data_transfer_time_utc": { + "attr_type": "resync_last_data_transfer_time_utc" + }, + "resync_start_time": { + "attr_type": "resync_start_time" + }, + "progress_health": { + "attr_type": "progress_health" + }, + "progress_status": { + "attr_type": "progress_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmAgentUpgradeBlockingErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_code": { + "attr_type": null + }, + "error_message": { + "attr_type": null + }, + "possible_causes": { + "attr_type": null + }, + "recommended_action": { + "attr_type": null + }, + "error_message_parameters": { + "attr_type": null + }, + "error_tags": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmApplianceDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "fabric_arm_id": { + "attr_type": null + }, + "process_server": { + "attr_type": null + }, + "rcm_proxy": { + "attr_type": null + }, + "push_installer": { + "attr_type": null + }, + "replication_agent": { + "attr_type": null + }, + "reprotect_agent": { + "attr_type": null + }, + "mars_agent": { + "attr_type": null + }, + "dra": { + "attr_type": null + }, + "switch_provider_blocking_error_details": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmApplianceSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "appliances": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmApplyRecoveryPointInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_id": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmDiscoveredProtectedVmDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "v_center_id": { + "attr_type": null + }, + "v_center_fqdn": { + "attr_type": null + }, + "datastores": { + "attr_type": null + }, + "ip_addresses": { + "attr_type": null + }, + "vmware_tools_status": { + "attr_type": null + }, + "power_status": { + "attr_type": null + }, + "vm_fqdn": { + "attr_type": null + }, + "os_name": { + "attr_type": null + }, + "created_timestamp": { + "attr_type": null + }, + "updated_timestamp": { + "attr_type": null + }, + "is_deleted": { + "attr_type": null + }, + "last_discovery_time_in_utc": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmDiskInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": null, + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "disk_type": { + "default": null, + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmDisksDefaultInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "log_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "disk_type": { + "default": null, + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmEnableProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_discovery_machine_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_resource_group_id": { + "default": null, + "param_type": "keyword_only" + }, + "process_server_id": { + "default": null, + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_default": { + "default": "none", + "param_type": "keyword_only" + }, + "target_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_boot_diagnostics_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "fabric_discovery_machine_id": { + "attr_type": "fabric_discovery_machine_id" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "disks_default": { + "attr_type": "disks_default" + }, + "target_resource_group_id": { + "attr_type": "target_resource_group_id" + }, + "target_network_id": { + "attr_type": "target_network_id" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "target_subnet_name": { + "attr_type": "target_subnet_name" + }, + "test_subnet_name": { + "attr_type": "test_subnet_name" + }, + "target_vm_name": { + "attr_type": "target_vm_name" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "license_type": { + "attr_type": "license_type" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "target_boot_diagnostics_storage_account_id": { + "attr_type": "target_boot_diagnostics_storage_account_id" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "protected_item_name": { + "attr_type": null + }, + "vm_name": { + "attr_type": null + }, + "latest_agent_version": { + "attr_type": null + }, + "job_id": { + "attr_type": null + }, + "fabric_name": { + "attr_type": null + }, + "appliance_name": { + "attr_type": null + }, + "server_type": { + "attr_type": null + }, + "component_display_name": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFabricCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vmware_site_id": { + "default": null, + "param_type": "keyword_only" + }, + "physical_site_id": { + "default": null, + "param_type": "keyword_only" + }, + "source_agent_identity": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vmware_site_id": { + "attr_type": "vmware_site_id" + }, + "physical_site_id": { + "attr_type": "physical_site_id" + }, + "source_agent_identity": { + "attr_type": "source_agent_identity" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFabricSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "source_agent_identity_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vmware_site_id": { + "attr_type": null + }, + "physical_site_id": { + "attr_type": null + }, + "service_endpoint": { + "attr_type": null + }, + "service_resource_id": { + "attr_type": null + }, + "service_container_id": { + "attr_type": null + }, + "data_plane_uri": { + "attr_type": null + }, + "control_plane_uri": { + "attr_type": null + }, + "source_agent_identity_details": { + "attr_type": "source_agent_identity_details" + }, + "process_servers": { + "attr_type": null + }, + "rcm_proxies": { + "attr_type": null + }, + "push_installers": { + "attr_type": null + }, + "replication_agents": { + "attr_type": null + }, + "reprotect_agents": { + "attr_type": null + }, + "mars_agents": { + "attr_type": null + }, + "dras": { + "attr_type": null + }, + "agent_details": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFabricSwitchProviderBlockingErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_code": { + "attr_type": null + }, + "error_message": { + "attr_type": null + }, + "possible_causes": { + "attr_type": null + }, + "recommended_action": { + "attr_type": null + }, + "error_message_parameters": { + "attr_type": null + }, + "error_tags": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackDiscoveredProtectedVmDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "v_center_id": { + "attr_type": null + }, + "v_center_fqdn": { + "attr_type": null + }, + "datastores": { + "attr_type": null + }, + "ip_addresses": { + "attr_type": null + }, + "vmware_tools_status": { + "attr_type": null + }, + "power_status": { + "attr_type": null + }, + "vm_fqdn": { + "attr_type": null + }, + "os_name": { + "attr_type": null + }, + "created_timestamp": { + "attr_type": null + }, + "updated_timestamp": { + "attr_type": null + }, + "is_deleted": { + "attr_type": null + }, + "last_discovery_time_in_utc": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "protected_item_name": { + "attr_type": null + }, + "vm_name": { + "attr_type": null + }, + "appliance_name": { + "attr_type": null + }, + "server_type": { + "attr_type": null + }, + "component_display_name": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackMobilityAgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "version": { + "attr_type": null + }, + "latest_version": { + "attr_type": null + }, + "driver_version": { + "attr_type": null + }, + "latest_upgradable_version_without_reboot": { + "attr_type": null + }, + "agent_version_expiry_date": { + "attr_type": null + }, + "driver_version_expiry_date": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "reasons_blocking_upgrade": { + "attr_type": null + }, + "is_upgradeable": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackNicDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "mac_address": { + "attr_type": null + }, + "network_name": { + "attr_type": null + }, + "adapter_type": { + "attr_type": null + }, + "source_ip_address": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackPlannedFailoverProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackPolicyCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackPolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackProtectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "ir_details": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": null + }, + "disk_name": { + "attr_type": null + }, + "is_os_disk": { + "attr_type": null + }, + "capacity_in_bytes": { + "attr_type": null + }, + "disk_uuid": { + "attr_type": null + }, + "data_pending_in_log_data_store_in_mb": { + "attr_type": null + }, + "data_pending_at_source_agent_in_mb": { + "attr_type": null + }, + "is_initial_replication_complete": { + "attr_type": null + }, + "ir_details": { + "attr_type": "ir_details" + }, + "resync_details": { + "attr_type": "resync_details" + }, + "last_sync_time": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackRecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "APPLICATION_CONSISTENT": "APPLICATION_CONSISTENT", + "CRASH_CONSISTENT": "CRASH_CONSISTENT" + } + }, + "InMageRcmFailbackReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "mobility_agent_details": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "discovered_vm_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "internal_identifier": { + "attr_type": null + }, + "azure_virtual_machine_id": { + "attr_type": null + }, + "multi_vm_group_name": { + "attr_type": null + }, + "reprotect_agent_id": { + "attr_type": null + }, + "reprotect_agent_name": { + "attr_type": null + }, + "os_type": { + "attr_type": null + }, + "log_storage_account_id": { + "attr_type": null + }, + "targetv_center_id": { + "attr_type": null + }, + "target_data_store_name": { + "attr_type": null + }, + "target_vm_name": { + "attr_type": null + }, + "initial_replication_progress_percentage": { + "attr_type": null + }, + "initial_replication_processed_bytes": { + "attr_type": null + }, + "initial_replication_transferred_bytes": { + "attr_type": null + }, + "initial_replication_progress_health": { + "attr_type": null + }, + "resync_progress_percentage": { + "attr_type": null + }, + "resync_processed_bytes": { + "attr_type": null + }, + "resync_transferred_bytes": { + "attr_type": null + }, + "resync_progress_health": { + "attr_type": null + }, + "resync_required": { + "attr_type": null + }, + "resync_state": { + "attr_type": null + }, + "protected_disks": { + "attr_type": "protected_disks" + }, + "mobility_agent_details": { + "attr_type": "mobility_agent_details" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "last_planned_failover_start_time": { + "attr_type": null + }, + "last_planned_failover_status": { + "attr_type": null + }, + "discovered_vm_details": { + "attr_type": "discovered_vm_details" + }, + "last_used_policy_id": { + "attr_type": null + }, + "last_used_policy_friendly_name": { + "attr_type": null + }, + "is_agent_registration_successful_after_failover": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackReprotectInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "process_server_id": { + "default": null, + "param_type": "keyword_only" + }, + "policy_id": { + "default": null, + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmFailbackSyncDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "progress_health": { + "attr_type": null + }, + "transferred_bytes": { + "attr_type": null + }, + "last15_minutes_transferred_bytes": { + "attr_type": null + }, + "last_data_transfer_time_utc": { + "attr_type": null + }, + "processed_bytes": { + "attr_type": null + }, + "start_time": { + "attr_type": null + }, + "last_refresh_time": { + "attr_type": null + }, + "progress_percentage": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmLastAgentUpgradeErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_code": { + "attr_type": null + }, + "error_message": { + "attr_type": null + }, + "possible_causes": { + "attr_type": null + }, + "recommended_action": { + "attr_type": null + }, + "error_message_parameters": { + "attr_type": null + }, + "error_tags": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmMobilityAgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "version": { + "attr_type": null + }, + "latest_version": { + "attr_type": null + }, + "latest_agent_release_date": { + "attr_type": null + }, + "driver_version": { + "attr_type": null + }, + "latest_upgradable_version_without_reboot": { + "attr_type": null + }, + "agent_version_expiry_date": { + "attr_type": null + }, + "driver_version_expiry_date": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "reasons_blocking_upgrade": { + "attr_type": null + }, + "is_upgradeable": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmNicDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "is_primary_nic": { + "default": "none", + "param_type": "keyword_only" + }, + "is_selected_for_failover": { + "default": "none", + "param_type": "keyword_only" + }, + "target_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "target_ip_address_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "test_ip_address_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "nic_id": { + "attr_type": null + }, + "is_primary_nic": { + "attr_type": "is_primary_nic" + }, + "is_selected_for_failover": { + "attr_type": "is_selected_for_failover" + }, + "source_ip_address": { + "attr_type": null + }, + "source_ip_address_type": { + "attr_type": null + }, + "source_network_id": { + "attr_type": null + }, + "source_subnet_name": { + "attr_type": null + }, + "target_ip_address": { + "attr_type": "target_ip_address" + }, + "target_ip_address_type": { + "attr_type": "target_ip_address_type" + }, + "target_subnet_name": { + "attr_type": "target_subnet_name" + }, + "test_subnet_name": { + "attr_type": "test_subnet_name" + }, + "test_ip_address": { + "attr_type": "test_ip_address" + }, + "test_ip_address_type": { + "attr_type": "test_ip_address_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmNicInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "nic_id": { + "default": null, + "param_type": "keyword_only" + }, + "is_primary_nic": { + "default": null, + "param_type": "keyword_only" + }, + "is_selected_for_failover": { + "default": "none", + "param_type": "keyword_only" + }, + "target_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "test_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "nic_id": { + "attr_type": "nic_id" + }, + "is_primary_nic": { + "attr_type": "is_primary_nic" + }, + "is_selected_for_failover": { + "attr_type": "is_selected_for_failover" + }, + "target_subnet_name": { + "attr_type": "target_subnet_name" + }, + "target_static_ip_address": { + "attr_type": "target_static_ip_address" + }, + "test_subnet_name": { + "attr_type": "test_subnet_name" + }, + "test_static_ip_address": { + "attr_type": "test_static_ip_address" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmPolicyCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_history_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_multi_vm_sync": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history_in_minutes": { + "attr_type": "recovery_point_history_in_minutes" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "enable_multi_vm_sync": { + "attr_type": "enable_multi_vm_sync" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmPolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_history_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_multi_vm_sync": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history_in_minutes": { + "attr_type": "recovery_point_history_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "enable_multi_vm_sync": { + "attr_type": "enable_multi_vm_sync" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmProtectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "ir_details": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": null + }, + "disk_name": { + "attr_type": null + }, + "is_os_disk": { + "attr_type": null + }, + "capacity_in_bytes": { + "attr_type": null + }, + "log_storage_account_id": { + "attr_type": null + }, + "disk_encryption_set_id": { + "attr_type": null + }, + "seed_managed_disk_id": { + "attr_type": null + }, + "seed_blob_uri": { + "attr_type": null + }, + "target_managed_disk_id": { + "attr_type": null + }, + "disk_type": { + "attr_type": "disk_type" + }, + "data_pending_in_log_data_store_in_mb": { + "attr_type": null + }, + "data_pending_at_source_agent_in_mb": { + "attr_type": null + }, + "is_initial_replication_complete": { + "attr_type": null + }, + "ir_details": { + "attr_type": "ir_details" + }, + "resync_details": { + "attr_type": "resync_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmProtectionContainerMappingDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "enable_agent_auto_upgrade": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmRecoveryPointDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "is_multi_vm_sync_point": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "target_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_location": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_boot_diagnostics_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "mobility_agent_details": { + "default": "none", + "param_type": "keyword_only" + }, + "last_agent_upgrade_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_upgrade_blocking_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "discovered_vm_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "internal_identifier": { + "attr_type": null + }, + "fabric_discovery_machine_id": { + "attr_type": null + }, + "multi_vm_group_name": { + "attr_type": null + }, + "discovery_type": { + "attr_type": null + }, + "process_server_id": { + "attr_type": null + }, + "processor_core_count": { + "attr_type": null + }, + "allocated_memory_in_mb": { + "attr_type": null + }, + "process_server_name": { + "attr_type": null + }, + "run_as_account_id": { + "attr_type": null + }, + "os_type": { + "attr_type": null + }, + "firmware_type": { + "attr_type": null + }, + "primary_nic_ip_address": { + "attr_type": null + }, + "target_generation": { + "attr_type": null + }, + "license_type": { + "attr_type": "license_type" + }, + "storage_account_id": { + "attr_type": null + }, + "target_vm_name": { + "attr_type": "target_vm_name" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "target_resource_group_id": { + "attr_type": "target_resource_group_id" + }, + "target_location": { + "attr_type": "target_location" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "target_boot_diagnostics_storage_account_id": { + "attr_type": "target_boot_diagnostics_storage_account_id" + }, + "target_network_id": { + "attr_type": "target_network_id" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "failover_recovery_point_id": { + "attr_type": null + }, + "last_recovery_point_received": { + "attr_type": null + }, + "last_rpo_in_seconds": { + "attr_type": null + }, + "last_rpo_calculated_time": { + "attr_type": null + }, + "last_recovery_point_id": { + "attr_type": null + }, + "initial_replication_progress_percentage": { + "attr_type": null + }, + "initial_replication_processed_bytes": { + "attr_type": null + }, + "initial_replication_transferred_bytes": { + "attr_type": null + }, + "initial_replication_progress_health": { + "attr_type": null + }, + "resync_progress_percentage": { + "attr_type": null + }, + "resync_processed_bytes": { + "attr_type": null + }, + "resync_transferred_bytes": { + "attr_type": null + }, + "resync_progress_health": { + "attr_type": null + }, + "resync_required": { + "attr_type": null + }, + "resync_state": { + "attr_type": null + }, + "agent_upgrade_state": { + "attr_type": null + }, + "last_agent_upgrade_type": { + "attr_type": null + }, + "agent_upgrade_job_id": { + "attr_type": null + }, + "agent_upgrade_attempt_to_version": { + "attr_type": null + }, + "protected_disks": { + "attr_type": "protected_disks" + }, + "is_last_upgrade_successful": { + "attr_type": null + }, + "is_agent_registration_successful_after_failover": { + "attr_type": null + }, + "mobility_agent_details": { + "attr_type": "mobility_agent_details" + }, + "last_agent_upgrade_error_details": { + "attr_type": "last_agent_upgrade_error_details" + }, + "agent_upgrade_blocking_error_details": { + "attr_type": "agent_upgrade_blocking_error_details" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "discovered_vm_details": { + "attr_type": "discovered_vm_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmReprotectInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_agent_id": { + "default": null, + "param_type": "keyword_only" + }, + "datastore_name": { + "default": null, + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "reprotect_agent_id": { + "attr_type": "reprotect_agent_id" + }, + "datastore_name": { + "attr_type": "datastore_name" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmSyncDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "progress_health": { + "attr_type": null + }, + "transferred_bytes": { + "attr_type": null + }, + "last15_minutes_transferred_bytes": { + "attr_type": null + }, + "last_data_transfer_time_utc": { + "attr_type": null + }, + "processed_bytes": { + "attr_type": null + }, + "start_time": { + "attr_type": null + }, + "last_refresh_time": { + "attr_type": null + }, + "progress_percentage": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmTestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "network_id": { + "attr_type": "network_id" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmUnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "perform_shutdown": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "perform_shutdown": { + "attr_type": "perform_shutdown" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmUpdateApplianceForReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmUpdateContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "enable_agent_auto_upgrade": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "enable_agent_auto_upgrade": { + "attr_type": "enable_agent_auto_upgrade" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageRcmUpdateReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "target_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_boot_diagnostics_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "target_vm_name": { + "attr_type": "target_vm_name" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "target_resource_group_id": { + "attr_type": "target_resource_group_id" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "target_boot_diagnostics_storage_account_id": { + "attr_type": "target_boot_diagnostics_storage_account_id" + }, + "target_network_id": { + "attr_type": "target_network_id" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "license_type": { + "attr_type": "license_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "active_site_type": { + "default": "none", + "param_type": "keyword_only" + }, + "source_vm_cpu_count": { + "default": "none", + "param_type": "keyword_only" + }, + "source_vm_ram_size_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "os_details": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_stage": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "resync_details": { + "default": "none", + "param_type": "keyword_only" + }, + "retention_window_start": { + "default": "none", + "param_type": "keyword_only" + }, + "retention_window_end": { + "default": "none", + "param_type": "keyword_only" + }, + "compressed_data_rate_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "uncompressed_data_rate_in_mb": { + "default": "none", + "param_type": "keyword_only" + }, + "rpo_in_seconds": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "master_target_id": { + "default": "none", + "param_type": "keyword_only" + }, + "consistency_points": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_resized": { + "default": "none", + "param_type": "keyword_only" + }, + "reboot_after_update_status": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_details": { + "default": "none", + "param_type": "keyword_only" + }, + "v_center_infrastructure_id": { + "default": "none", + "param_type": "keyword_only" + }, + "infrastructure_vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "discovery_type": { + "default": "none", + "param_type": "keyword_only" + }, + "azure_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "datastores": { + "default": "none", + "param_type": "keyword_only" + }, + "validation_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "last_rpo_calculated_time": { + "default": "none", + "param_type": "keyword_only" + }, + "last_update_received_time": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_version": { + "default": "none", + "param_type": "keyword_only" + }, + "is_additional_stats_available": { + "default": "none", + "param_type": "keyword_only" + }, + "total_data_transferred": { + "default": "none", + "param_type": "keyword_only" + }, + "total_progress_health": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "active_site_type": { + "attr_type": "active_site_type" + }, + "source_vm_cpu_count": { + "attr_type": "source_vm_cpu_count" + }, + "source_vm_ram_size_in_mb": { + "attr_type": "source_vm_ram_size_in_mb" + }, + "os_details": { + "attr_type": "os_details" + }, + "protection_stage": { + "attr_type": "protection_stage" + }, + "vm_id": { + "attr_type": "vm_id" + }, + "vm_protection_state": { + "attr_type": "vm_protection_state" + }, + "vm_protection_state_description": { + "attr_type": "vm_protection_state_description" + }, + "resync_details": { + "attr_type": "resync_details" + }, + "retention_window_start": { + "attr_type": "retention_window_start" + }, + "retention_window_end": { + "attr_type": "retention_window_end" + }, + "compressed_data_rate_in_mb": { + "attr_type": "compressed_data_rate_in_mb" + }, + "uncompressed_data_rate_in_mb": { + "attr_type": "uncompressed_data_rate_in_mb" + }, + "rpo_in_seconds": { + "attr_type": "rpo_in_seconds" + }, + "protected_disks": { + "attr_type": "protected_disks" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "master_target_id": { + "attr_type": "master_target_id" + }, + "consistency_points": { + "attr_type": "consistency_points" + }, + "disk_resized": { + "attr_type": "disk_resized" + }, + "reboot_after_update_status": { + "attr_type": "reboot_after_update_status" + }, + "multi_vm_group_id": { + "attr_type": "multi_vm_group_id" + }, + "multi_vm_group_name": { + "attr_type": "multi_vm_group_name" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "agent_details": { + "attr_type": "agent_details" + }, + "v_center_infrastructure_id": { + "attr_type": "v_center_infrastructure_id" + }, + "infrastructure_vm_id": { + "attr_type": "infrastructure_vm_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "discovery_type": { + "attr_type": "discovery_type" + }, + "azure_storage_account_id": { + "attr_type": "azure_storage_account_id" + }, + "datastores": { + "attr_type": "datastores" + }, + "validation_errors": { + "attr_type": "validation_errors" + }, + "last_rpo_calculated_time": { + "attr_type": "last_rpo_calculated_time" + }, + "last_update_received_time": { + "attr_type": "last_update_received_time" + }, + "replica_id": { + "attr_type": "replica_id" + }, + "os_version": { + "attr_type": "os_version" + }, + "is_additional_stats_available": { + "attr_type": "is_additional_stats_available" + }, + "total_data_transferred": { + "attr_type": "total_data_transferred" + }, + "total_progress_health": { + "attr_type": "total_progress_health" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageReprotectInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "master_target_id": { + "default": null, + "param_type": "keyword_only" + }, + "process_server_id": { + "default": null, + "param_type": "keyword_only" + }, + "retention_drive": { + "default": null, + "param_type": "keyword_only" + }, + "profile_id": { + "default": null, + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "datastore_name": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_exclusion_input": { + "default": "none", + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "master_target_id": { + "attr_type": "master_target_id" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "retention_drive": { + "attr_type": "retention_drive" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "datastore_name": { + "attr_type": "datastore_name" + }, + "disk_exclusion_input": { + "attr_type": "disk_exclusion_input" + }, + "profile_id": { + "attr_type": "profile_id" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageTestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageUnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InMageV2RpRecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "LATEST": "LATEST", + "LATEST_APPLICATION_CONSISTENT": "LATEST_APPLICATION_CONSISTENT", + "LATEST_CRASH_CONSISTENT": "LATEST_CRASH_CONSISTENT", + "LATEST_PROCESSED": "LATEST_PROCESSED" + } + }, + "InMageVolumeExclusionOptions": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "volume_label": { + "default": "none", + "param_type": "keyword_only" + }, + "only_exclude_if_single_volume": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "volume_label": { + "attr_type": "volume_label" + }, + "only_exclude_if_single_volume": { + "attr_type": "only_exclude_if_single_volume" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InconsistentVmDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "cloud_name": { + "default": "none", + "param_type": "keyword_only" + }, + "details": { + "default": "none", + "param_type": "keyword_only" + }, + "error_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "vm_name": { + "attr_type": "vm_name" + }, + "cloud_name": { + "attr_type": "cloud_name" + }, + "details": { + "attr_type": "details" + }, + "error_ids": { + "attr_type": "error_ids" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InitialReplicationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "initial_replication_type": { + "default": "none", + "param_type": "keyword_only" + }, + "initial_replication_progress_percentage": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "initial_replication_type": { + "attr_type": "initial_replication_type" + }, + "initial_replication_progress_percentage": { + "attr_type": "initial_replication_progress_percentage" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InlineWorkflowTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "child_tasks": { + "default": "none", + "param_type": "keyword_only" + }, + "workflow_ids": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "workflow_ids": { + "attr_type": "workflow_ids" + }, + "child_tasks": { + "attr_type": "child_tasks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InnerHealthError": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "error_source": { + "default": "none", + "param_type": "keyword_only" + }, + "error_type": { + "default": "none", + "param_type": "keyword_only" + }, + "error_level": { + "default": "none", + "param_type": "keyword_only" + }, + "error_category": { + "default": "none", + "param_type": "keyword_only" + }, + "error_code": { + "default": "none", + "param_type": "keyword_only" + }, + "summary_message": { + "default": "none", + "param_type": "keyword_only" + }, + "error_message": { + "default": "none", + "param_type": "keyword_only" + }, + "possible_causes": { + "default": "none", + "param_type": "keyword_only" + }, + "recommended_action": { + "default": "none", + "param_type": "keyword_only" + }, + "creation_time_utc": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_provider_error_message": { + "default": "none", + "param_type": "keyword_only" + }, + "entity_id": { + "default": "none", + "param_type": "keyword_only" + }, + "error_id": { + "default": "none", + "param_type": "keyword_only" + }, + "customer_resolvability": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_source": { + "attr_type": "error_source" + }, + "error_type": { + "attr_type": "error_type" + }, + "error_level": { + "attr_type": "error_level" + }, + "error_category": { + "attr_type": "error_category" + }, + "error_code": { + "attr_type": "error_code" + }, + "summary_message": { + "attr_type": "summary_message" + }, + "error_message": { + "attr_type": "error_message" + }, + "possible_causes": { + "attr_type": "possible_causes" + }, + "recommended_action": { + "attr_type": "recommended_action" + }, + "creation_time_utc": { + "attr_type": "creation_time_utc" + }, + "recovery_provider_error_message": { + "attr_type": "recovery_provider_error_message" + }, + "entity_id": { + "attr_type": "entity_id" + }, + "error_id": { + "attr_type": "error_id" + }, + "customer_resolvability": { + "attr_type": "customer_resolvability" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "InputEndpoint": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "endpoint_name": { + "default": "none", + "param_type": "keyword_only" + }, + "private_port": { + "default": "none", + "param_type": "keyword_only" + }, + "public_port": { + "default": "none", + "param_type": "keyword_only" + }, + "protocol": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "endpoint_name": { + "attr_type": "endpoint_name" + }, + "private_port": { + "attr_type": "private_port" + }, + "public_port": { + "attr_type": "public_port" + }, + "protocol": { + "attr_type": "protocol" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "Job": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "affected_object_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "affected_object_details": { + "attr_type": "affected_object_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobEntity": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_id": { + "default": "none", + "param_type": "keyword_only" + }, + "job_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_object_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "job_scenario_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "job_id": { + "attr_type": "job_id" + }, + "job_friendly_name": { + "attr_type": "job_friendly_name" + }, + "target_object_id": { + "attr_type": "target_object_id" + }, + "target_object_name": { + "attr_type": "target_object_name" + }, + "target_instance_type": { + "attr_type": "target_instance_type" + }, + "job_scenario_name": { + "attr_type": "job_scenario_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobErrorDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "service_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "error_level": { + "default": "none", + "param_type": "keyword_only" + }, + "creation_time": { + "default": "none", + "param_type": "keyword_only" + }, + "task_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "service_error_details": { + "attr_type": "service_error_details" + }, + "provider_error_details": { + "attr_type": "provider_error_details" + }, + "error_level": { + "attr_type": "error_level" + }, + "creation_time": { + "attr_type": "creation_time" + }, + "task_id": { + "attr_type": "task_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "activity_id": { + "default": "none", + "param_type": "keyword_only" + }, + "scenario_name": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "state": { + "default": "none", + "param_type": "keyword_only" + }, + "state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "tasks": { + "default": "none", + "param_type": "keyword_only" + }, + "errors": { + "default": "none", + "param_type": "keyword_only" + }, + "start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "end_time": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_actions": { + "default": "none", + "param_type": "keyword_only" + }, + "target_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_object_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "activity_id": { + "attr_type": "activity_id" + }, + "scenario_name": { + "attr_type": "scenario_name" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "state": { + "attr_type": "state" + }, + "state_description": { + "attr_type": "state_description" + }, + "tasks": { + "attr_type": "tasks" + }, + "errors": { + "attr_type": "errors" + }, + "start_time": { + "attr_type": "start_time" + }, + "end_time": { + "attr_type": "end_time" + }, + "allowed_actions": { + "attr_type": "allowed_actions" + }, + "target_object_id": { + "attr_type": "target_object_id" + }, + "target_object_name": { + "attr_type": "target_object_name" + }, + "target_instance_type": { + "attr_type": "target_instance_type" + }, + "custom_details": { + "attr_type": "custom_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "start_time": { + "default": "none", + "param_type": "keyword_only" + }, + "end_time": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_id": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_object_types": { + "default": "none", + "param_type": "keyword_only" + }, + "job_status": { + "default": "none", + "param_type": "keyword_only" + }, + "job_output_type": { + "default": "none", + "param_type": "keyword_only" + }, + "job_name": { + "default": "none", + "param_type": "keyword_only" + }, + "timezone_offset": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "start_time": { + "attr_type": "start_time" + }, + "end_time": { + "attr_type": "end_time" + }, + "fabric_id": { + "attr_type": "fabric_id" + }, + "affected_object_types": { + "attr_type": "affected_object_types" + }, + "job_status": { + "attr_type": "job_status" + }, + "job_output_type": { + "attr_type": "job_output_type" + }, + "job_name": { + "attr_type": "job_name" + }, + "timezone_offset": { + "attr_type": "timezone_offset" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobStatusEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_id": { + "default": "none", + "param_type": "keyword_only" + }, + "job_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "job_status": { + "default": "none", + "param_type": "keyword_only" + }, + "affected_object_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "job_id": { + "attr_type": "job_id" + }, + "job_friendly_name": { + "attr_type": "job_friendly_name" + }, + "job_status": { + "attr_type": "job_status" + }, + "affected_object_type": { + "attr_type": "affected_object_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "JobTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_task": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "job_task": { + "attr_type": "job_task" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "KeyEncryptionKeyInfo": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "key_vault_resource_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "key_identifier": { + "attr_type": "key_identifier" + }, + "key_vault_resource_arm_id": { + "attr_type": "key_vault_resource_arm_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "LicenseType": { + "type": "Enum", + "methods": {}, + "properties": { + "NOT_SPECIFIED": "NOT_SPECIFIED", + "NO_LICENSE_TYPE": "NO_LICENSE_TYPE", + "WINDOWS_SERVER": "WINDOWS_SERVER" + } + }, + "LogicalNetwork": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "LogicalNetworkCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "LogicalNetworkProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "network_virtualization_status": { + "default": "none", + "param_type": "keyword_only" + }, + "logical_network_usage": { + "default": "none", + "param_type": "keyword_only" + }, + "logical_network_definitions_status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "network_virtualization_status": { + "attr_type": "network_virtualization_status" + }, + "logical_network_usage": { + "attr_type": "logical_network_usage" + }, + "logical_network_definitions_status": { + "attr_type": "logical_network_definitions_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ManualActionTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "instructions": { + "default": "none", + "param_type": "keyword_only" + }, + "observation": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "name": { + "attr_type": "name" + }, + "instructions": { + "attr_type": "instructions" + }, + "observation": { + "attr_type": "observation" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MarsAgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MasterTargetServer": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "id": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "version_status": { + "default": "none", + "param_type": "keyword_only" + }, + "retention_volumes": { + "default": "none", + "param_type": "keyword_only" + }, + "data_stores": { + "default": "none", + "param_type": "keyword_only" + }, + "validation_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_count": { + "default": "none", + "param_type": "keyword_only" + }, + "os_version": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "mars_agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "mars_agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version_details": { + "default": "none", + "param_type": "keyword_only" + }, + "mars_agent_version_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": "id" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "name": { + "attr_type": "name" + }, + "os_type": { + "attr_type": "os_type" + }, + "agent_version": { + "attr_type": "agent_version" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "version_status": { + "attr_type": "version_status" + }, + "retention_volumes": { + "attr_type": "retention_volumes" + }, + "data_stores": { + "attr_type": "data_stores" + }, + "validation_errors": { + "attr_type": "validation_errors" + }, + "health_errors": { + "attr_type": "health_errors" + }, + "disk_count": { + "attr_type": "disk_count" + }, + "os_version": { + "attr_type": "os_version" + }, + "agent_expiry_date": { + "attr_type": "agent_expiry_date" + }, + "mars_agent_version": { + "attr_type": "mars_agent_version" + }, + "mars_agent_expiry_date": { + "attr_type": "mars_agent_expiry_date" + }, + "agent_version_details": { + "attr_type": "agent_version_details" + }, + "mars_agent_version_details": { + "attr_type": "mars_agent_version_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrateInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrateInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrateProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationItem": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationItemCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationItemOperation": { + "type": "Enum", + "methods": {}, + "properties": { + "DISABLE_MIGRATION": "DISABLE_MIGRATION", + "MIGRATE": "MIGRATE", + "PAUSE_REPLICATION": "PAUSE_REPLICATION", + "RESUME_REPLICATION": "RESUME_REPLICATION", + "START_RESYNC": "START_RESYNC", + "TEST_MIGRATE": "TEST_MIGRATE", + "TEST_MIGRATE_CLEANUP": "TEST_MIGRATE_CLEANUP" + } + }, + "MigrationItemProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "machine_name": { + "attr_type": null + }, + "policy_id": { + "attr_type": null + }, + "policy_friendly_name": { + "attr_type": null + }, + "recovery_services_provider_id": { + "attr_type": null + }, + "replication_status": { + "attr_type": null + }, + "migration_state": { + "attr_type": null + }, + "migration_state_description": { + "attr_type": null + }, + "last_test_migration_time": { + "attr_type": null + }, + "last_test_migration_status": { + "attr_type": null + }, + "last_migration_time": { + "attr_type": null + }, + "last_migration_status": { + "attr_type": null + }, + "test_migrate_state": { + "attr_type": null + }, + "test_migrate_state_description": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "allowed_operations": { + "attr_type": null + }, + "current_job": { + "attr_type": null + }, + "critical_job_history": { + "attr_type": null + }, + "event_correlation_id": { + "attr_type": null + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationItemsQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "source_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "source_container_name": { + "default": "none", + "param_type": "keyword_only" + }, + "instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "source_fabric_name": { + "attr_type": "source_fabric_name" + }, + "source_container_name": { + "attr_type": "source_container_name" + }, + "instance_type": { + "attr_type": "instance_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationProviderSpecificSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationRecoveryPoint": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationRecoveryPointCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationRecoveryPointProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "recovery_point_time": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MigrationRecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "APPLICATION_CONSISTENT": "APPLICATION_CONSISTENT", + "CRASH_CONSISTENT": "CRASH_CONSISTENT", + "NOT_SPECIFIED": "NOT_SPECIFIED" + } + }, + "MigrationState": { + "type": "Enum", + "methods": {}, + "properties": { + "DISABLE_MIGRATION_FAILED": "DISABLE_MIGRATION_FAILED", + "DISABLE_MIGRATION_IN_PROGRESS": "DISABLE_MIGRATION_IN_PROGRESS", + "ENABLE_MIGRATION_FAILED": "ENABLE_MIGRATION_FAILED", + "ENABLE_MIGRATION_IN_PROGRESS": "ENABLE_MIGRATION_IN_PROGRESS", + "INITIAL_SEEDING_FAILED": "INITIAL_SEEDING_FAILED", + "INITIAL_SEEDING_IN_PROGRESS": "INITIAL_SEEDING_IN_PROGRESS", + "MIGRATION_COMPLETED_WITH_INFORMATION": "MIGRATION_COMPLETED_WITH_INFORMATION", + "MIGRATION_FAILED": "MIGRATION_FAILED", + "MIGRATION_IN_PROGRESS": "MIGRATION_IN_PROGRESS", + "MIGRATION_PARTIALLY_SUCCEEDED": "MIGRATION_PARTIALLY_SUCCEEDED", + "MIGRATION_SUCCEEDED": "MIGRATION_SUCCEEDED", + "NONE": "NONE", + "PROTECTION_SUSPENDED": "PROTECTION_SUSPENDED", + "REPLICATING": "REPLICATING", + "RESUME_INITIATED": "RESUME_INITIATED", + "RESUME_IN_PROGRESS": "RESUME_IN_PROGRESS", + "SUSPENDING_PROTECTION": "SUSPENDING_PROTECTION" + } + }, + "MobilityAgentUpgradeState": { + "type": "Enum", + "methods": {}, + "properties": { + "COMMIT": "COMMIT", + "COMPLETED": "COMPLETED", + "NONE": "NONE", + "STARTED": "STARTED" + } + }, + "MobilityServiceUpdate": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "version": { + "default": "none", + "param_type": "keyword_only" + }, + "reboot_status": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "version": { + "attr_type": "version" + }, + "reboot_status": { + "attr_type": "reboot_status" + }, + "os_type": { + "attr_type": "os_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "MultiVmGroupCreateOption": { + "type": "Enum", + "methods": {}, + "properties": { + "AUTO_CREATED": "AUTO_CREATED", + "USER_SPECIFIED": "USER_SPECIFIED" + } + }, + "MultiVmSyncPointOption": { + "type": "Enum", + "methods": {}, + "properties": { + "USE_MULTI_VM_SYNC_RECOVERY_POINT": "USE_MULTI_VM_SYNC_RECOVERY_POINT", + "USE_PER_VM_RECOVERY_POINT": "USE_PER_VM_RECOVERY_POINT" + } + }, + "Network": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NetworkCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NetworkMapping": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NetworkMappingCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NetworkMappingFabricSpecificSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NetworkMappingProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "state": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_network_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_network_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_specific_settings": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "state": { + "attr_type": "state" + }, + "primary_network_friendly_name": { + "attr_type": "primary_network_friendly_name" + }, + "primary_network_id": { + "attr_type": "primary_network_id" + }, + "primary_fabric_friendly_name": { + "attr_type": "primary_fabric_friendly_name" + }, + "recovery_network_friendly_name": { + "attr_type": "recovery_network_friendly_name" + }, + "recovery_network_id": { + "attr_type": "recovery_network_id" + }, + "recovery_fabric_arm_id": { + "attr_type": "recovery_fabric_arm_id" + }, + "recovery_fabric_friendly_name": { + "attr_type": "recovery_fabric_friendly_name" + }, + "fabric_specific_settings": { + "attr_type": "fabric_specific_settings" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NetworkProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_type": { + "default": "none", + "param_type": "keyword_only" + }, + "subnets": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "network_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "fabric_type": { + "attr_type": "fabric_type" + }, + "subnets": { + "attr_type": "subnets" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "network_type": { + "attr_type": "network_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NewProtectionProfile": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "keyword_only" + }, + "multi_vm_sync_status": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_point_history": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "policy_name": { + "attr_type": "policy_name" + }, + "recovery_point_history": { + "attr_type": "recovery_point_history" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "multi_vm_sync_status": { + "attr_type": "multi_vm_sync_status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "NewRecoveryVirtualNetwork": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_virtual_network_resource_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_virtual_network_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "recovery_virtual_network_resource_group_name": { + "attr_type": "recovery_virtual_network_resource_group_name" + }, + "recovery_virtual_network_name": { + "attr_type": "recovery_virtual_network_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "OSDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "product_type": { + "default": "none", + "param_type": "keyword_only" + }, + "os_edition": { + "default": "none", + "param_type": "keyword_only" + }, + "o_s_version": { + "default": "none", + "param_type": "keyword_only" + }, + "o_s_major_version": { + "default": "none", + "param_type": "keyword_only" + }, + "o_s_minor_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "os_type": { + "attr_type": "os_type" + }, + "product_type": { + "attr_type": "product_type" + }, + "os_edition": { + "attr_type": "os_edition" + }, + "o_s_version": { + "attr_type": "o_s_version" + }, + "o_s_major_version": { + "attr_type": "o_s_major_version" + }, + "o_s_minor_version": { + "attr_type": "o_s_minor_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "OSDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "os_vhd_id": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "vhd_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "os_vhd_id": { + "attr_type": "os_vhd_id" + }, + "os_type": { + "attr_type": "os_type" + }, + "vhd_name": { + "attr_type": "vhd_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "OSUpgradeSupportedVersions": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "supported_source_os_version": { + "attr_type": null + }, + "supported_target_os_versions": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "OSVersionWrapper": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "version": { + "default": "none", + "param_type": "keyword_only" + }, + "service_pack": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "version": { + "attr_type": "version" + }, + "service_pack": { + "attr_type": "service_pack" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "OperationsDiscovery": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "display": { + "default": "none", + "param_type": "keyword_only" + }, + "origin": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": "name" + }, + "display": { + "attr_type": "display" + }, + "origin": { + "attr_type": "origin" + }, + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "OperationsDiscoveryCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PauseReplicationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PauseReplicationInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "instance_type": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": "instance_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PlannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PlannedFailoverInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PlannedFailoverProviderSpecificFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PlannedFailoverStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "CANCELLED": "CANCELLED", + "FAILED": "FAILED", + "SUCCEEDED": "SUCCEEDED", + "UNKNOWN": "UNKNOWN" + } + }, + "Policy": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PolicyCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PolicyProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PolicyProviderSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PolicyProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PossibleOperationsDirections": { + "type": "Enum", + "methods": {}, + "properties": { + "PRIMARY_TO_RECOVERY": "PRIMARY_TO_RECOVERY", + "RECOVERY_TO_PRIMARY": "RECOVERY_TO_PRIMARY" + } + }, + "PresenceStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "NOT_PRESENT": "NOT_PRESENT", + "PRESENT": "PRESENT", + "UNKNOWN": "UNKNOWN" + } + }, + "ProcessServer": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "id": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "version_status": { + "default": "none", + "param_type": "keyword_only" + }, + "mobility_service_updates": { + "default": "none", + "param_type": "keyword_only" + }, + "host_id": { + "default": "none", + "param_type": "keyword_only" + }, + "machine_count": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_pair_count": { + "default": "none", + "param_type": "keyword_only" + }, + "system_load": { + "default": "none", + "param_type": "keyword_only" + }, + "system_load_status": { + "default": "none", + "param_type": "keyword_only" + }, + "cpu_load": { + "default": "none", + "param_type": "keyword_only" + }, + "cpu_load_status": { + "default": "none", + "param_type": "keyword_only" + }, + "total_memory_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "available_memory_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "memory_usage_status": { + "default": "none", + "param_type": "keyword_only" + }, + "total_space_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "available_space_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "space_usage_status": { + "default": "none", + "param_type": "keyword_only" + }, + "ps_service_status": { + "default": "none", + "param_type": "keyword_only" + }, + "ssl_cert_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "ssl_cert_expiry_remaining_days": { + "default": "none", + "param_type": "keyword_only" + }, + "os_version": { + "default": "none", + "param_type": "keyword_only" + }, + "health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "id": { + "attr_type": "id" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "os_type": { + "attr_type": "os_type" + }, + "agent_version": { + "attr_type": "agent_version" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "version_status": { + "attr_type": "version_status" + }, + "mobility_service_updates": { + "attr_type": "mobility_service_updates" + }, + "host_id": { + "attr_type": "host_id" + }, + "machine_count": { + "attr_type": "machine_count" + }, + "replication_pair_count": { + "attr_type": "replication_pair_count" + }, + "system_load": { + "attr_type": "system_load" + }, + "system_load_status": { + "attr_type": "system_load_status" + }, + "cpu_load": { + "attr_type": "cpu_load" + }, + "cpu_load_status": { + "attr_type": "cpu_load_status" + }, + "total_memory_in_bytes": { + "attr_type": "total_memory_in_bytes" + }, + "available_memory_in_bytes": { + "attr_type": "available_memory_in_bytes" + }, + "memory_usage_status": { + "attr_type": "memory_usage_status" + }, + "total_space_in_bytes": { + "attr_type": "total_space_in_bytes" + }, + "available_space_in_bytes": { + "attr_type": "available_space_in_bytes" + }, + "space_usage_status": { + "attr_type": "space_usage_status" + }, + "ps_service_status": { + "attr_type": "ps_service_status" + }, + "ssl_cert_expiry_date": { + "attr_type": "ssl_cert_expiry_date" + }, + "ssl_cert_expiry_remaining_days": { + "attr_type": "ssl_cert_expiry_remaining_days" + }, + "os_version": { + "attr_type": "os_version" + }, + "health_errors": { + "attr_type": "health_errors" + }, + "agent_expiry_date": { + "attr_type": "agent_expiry_date" + }, + "agent_version_details": { + "attr_type": "agent_version_details" + }, + "health": { + "attr_type": null + }, + "ps_stats_refresh_time": { + "attr_type": null + }, + "throughput_upload_pending_data_in_bytes": { + "attr_type": null + }, + "throughput_in_m_bps": { + "attr_type": null + }, + "throughput_in_bytes": { + "attr_type": null + }, + "throughput_status": { + "attr_type": null + }, + "mars_communication_status": { + "attr_type": null + }, + "mars_registration_status": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProcessServerDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "ip_addresses": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "total_memory_in_bytes": { + "attr_type": null + }, + "available_memory_in_bytes": { + "attr_type": null + }, + "used_memory_in_bytes": { + "attr_type": null + }, + "memory_usage_percentage": { + "attr_type": null + }, + "total_space_in_bytes": { + "attr_type": null + }, + "available_space_in_bytes": { + "attr_type": null + }, + "used_space_in_bytes": { + "attr_type": null + }, + "free_space_percentage": { + "attr_type": null + }, + "throughput_upload_pending_data_in_bytes": { + "attr_type": null + }, + "throughput_in_bytes": { + "attr_type": null + }, + "processor_usage_percentage": { + "attr_type": null + }, + "throughput_status": { + "attr_type": null + }, + "system_load": { + "attr_type": null + }, + "system_load_status": { + "attr_type": null + }, + "disk_usage_status": { + "attr_type": null + }, + "memory_usage_status": { + "attr_type": null + }, + "processor_usage_status": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "protected_item_count": { + "attr_type": null + }, + "historic_health": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectableItem": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectableItemCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectableItemProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_status": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_protected_item_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_services_provider_id": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_readiness_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "supported_replication_providers": { + "default": "none", + "param_type": "keyword_only" + }, + "custom_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "protection_status": { + "attr_type": "protection_status" + }, + "replication_protected_item_id": { + "attr_type": "replication_protected_item_id" + }, + "recovery_services_provider_id": { + "attr_type": "recovery_services_provider_id" + }, + "protection_readiness_errors": { + "attr_type": "protection_readiness_errors" + }, + "supported_replication_providers": { + "attr_type": "supported_replication_providers" + }, + "custom_details": { + "attr_type": "custom_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectableItemQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "state": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "state": { + "attr_type": "state" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectedItemsQueryParameter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "source_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_plan_name": { + "default": "none", + "param_type": "keyword_only" + }, + "source_fabric_location": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_object_id": { + "default": "none", + "param_type": "keyword_only" + }, + "v_center_name": { + "default": "none", + "param_type": "keyword_only" + }, + "instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_group_create_option": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "source_fabric_name": { + "attr_type": "source_fabric_name" + }, + "recovery_plan_name": { + "attr_type": "recovery_plan_name" + }, + "source_fabric_location": { + "attr_type": "source_fabric_location" + }, + "fabric_object_id": { + "attr_type": "fabric_object_id" + }, + "v_center_name": { + "attr_type": "v_center_name" + }, + "instance_type": { + "attr_type": "instance_type" + }, + "multi_vm_group_create_option": { + "attr_type": "multi_vm_group_create_option" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainer": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerFabricSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerMapping": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerMappingCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerMappingProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_protection_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_protection_container_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "health": { + "default": "none", + "param_type": "keyword_only" + }, + "health_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "state": { + "default": "none", + "param_type": "keyword_only" + }, + "source_protection_container_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "source_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_protection_container_id": { + "attr_type": "target_protection_container_id" + }, + "target_protection_container_friendly_name": { + "attr_type": "target_protection_container_friendly_name" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "health": { + "attr_type": "health" + }, + "health_error_details": { + "attr_type": "health_error_details" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "state": { + "attr_type": "state" + }, + "source_protection_container_friendly_name": { + "attr_type": "source_protection_container_friendly_name" + }, + "source_fabric_friendly_name": { + "attr_type": "source_fabric_friendly_name" + }, + "target_fabric_friendly_name": { + "attr_type": "target_fabric_friendly_name" + }, + "policy_friendly_name": { + "attr_type": "policy_friendly_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerMappingProviderSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionContainerProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_type": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_item_count": { + "default": "none", + "param_type": "keyword_only" + }, + "pairing_status": { + "default": "none", + "param_type": "keyword_only" + }, + "role": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "fabric_friendly_name": { + "attr_type": "fabric_friendly_name" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "fabric_type": { + "attr_type": "fabric_type" + }, + "protected_item_count": { + "attr_type": "protected_item_count" + }, + "pairing_status": { + "attr_type": "pairing_status" + }, + "role": { + "attr_type": "role" + }, + "fabric_specific_details": { + "attr_type": "fabric_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProtectionHealth": { + "type": "Enum", + "methods": {}, + "properties": { + "CRITICAL": "CRITICAL", + "NONE": "NONE", + "NORMAL": "NORMAL", + "WARNING": "WARNING" + } + }, + "ProtectionProfileCustomDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProviderError": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "error_code": { + "default": "none", + "param_type": "keyword_only" + }, + "error_message": { + "default": "none", + "param_type": "keyword_only" + }, + "error_id": { + "default": "none", + "param_type": "keyword_only" + }, + "possible_causes": { + "default": "none", + "param_type": "keyword_only" + }, + "recommended_action": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "error_code": { + "attr_type": "error_code" + }, + "error_message": { + "attr_type": "error_message" + }, + "error_id": { + "attr_type": "error_id" + }, + "possible_causes": { + "attr_type": "possible_causes" + }, + "recommended_action": { + "attr_type": "recommended_action" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ProviderSpecificRecoveryPointDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "PushInstallerDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RcmComponentStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "CRITICAL": "CRITICAL", + "HEALTHY": "HEALTHY", + "UNKNOWN": "UNKNOWN", + "WARNING": "WARNING" + } + }, + "RcmProxyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "client_authentication_type": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryAvailabilitySetCustomDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlan": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanA2ADetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_zone": { + "attr_type": "primary_zone" + }, + "recovery_zone": { + "attr_type": "recovery_zone" + }, + "primary_extended_location": { + "attr_type": "primary_extended_location" + }, + "recovery_extended_location": { + "attr_type": "recovery_extended_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanA2AFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": null, + "param_type": "keyword_only" + }, + "cloud_service_creation_option": { + "default": "none", + "param_type": "keyword_only" + }, + "multi_vm_sync_point_option": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "cloud_service_creation_option": { + "attr_type": "cloud_service_creation_option" + }, + "multi_vm_sync_point_option": { + "attr_type": "multi_vm_sync_point_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanA2AInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_extended_location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_zone": { + "attr_type": "primary_zone" + }, + "recovery_zone": { + "attr_type": "recovery_zone" + }, + "primary_extended_location": { + "attr_type": "primary_extended_location" + }, + "recovery_extended_location": { + "attr_type": "recovery_extended_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanAction": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "action_name": { + "default": null, + "param_type": "keyword_only" + }, + "failover_types": { + "default": null, + "param_type": "keyword_only" + }, + "failover_directions": { + "default": null, + "param_type": "keyword_only" + }, + "custom_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "action_name": { + "attr_type": "action_name" + }, + "failover_types": { + "attr_type": "failover_types" + }, + "failover_directions": { + "attr_type": "failover_directions" + }, + "custom_details": { + "attr_type": "custom_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanActionDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanActionLocation": { + "type": "Enum", + "methods": {}, + "properties": { + "PRIMARY": "PRIMARY", + "RECOVERY": "RECOVERY" + } + }, + "RecoveryPlanAutomationRunbookActionDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_location": { + "default": null, + "param_type": "keyword_only" + }, + "runbook_id": { + "default": "none", + "param_type": "keyword_only" + }, + "timeout": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "runbook_id": { + "attr_type": "runbook_id" + }, + "timeout": { + "attr_type": "timeout" + }, + "fabric_location": { + "attr_type": "fabric_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanGroup": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "group_type": { + "default": null, + "param_type": "keyword_only" + }, + "replication_protected_items": { + "default": "none", + "param_type": "keyword_only" + }, + "start_group_actions": { + "default": "none", + "param_type": "keyword_only" + }, + "end_group_actions": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "group_type": { + "attr_type": "group_type" + }, + "replication_protected_items": { + "attr_type": "replication_protected_items" + }, + "start_group_actions": { + "attr_type": "start_group_actions" + }, + "end_group_actions": { + "attr_type": "end_group_actions" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanGroupTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "child_tasks": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "rp_group_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "name": { + "attr_type": "name" + }, + "group_id": { + "attr_type": "group_id" + }, + "rp_group_type": { + "attr_type": "rp_group_type" + }, + "child_tasks": { + "attr_type": "child_tasks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanGroupType": { + "type": "Enum", + "methods": {}, + "properties": { + "BOOT": "BOOT", + "FAILOVER": "FAILOVER", + "SHUTDOWN": "SHUTDOWN" + } + }, + "RecoveryPlanHyperVReplicaAzureFailbackInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "data_sync_option": { + "default": null, + "param_type": "keyword_only" + }, + "recovery_vm_creation_option": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "data_sync_option": { + "attr_type": "data_sync_option" + }, + "recovery_vm_creation_option": { + "attr_type": "recovery_vm_creation_option" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanHyperVReplicaAzureFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "primary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "secondary_kek_certificate_pfx": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "primary_kek_certificate_pfx": { + "attr_type": "primary_kek_certificate_pfx" + }, + "secondary_kek_certificate_pfx": { + "attr_type": "secondary_kek_certificate_pfx" + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanInMageAzureV2FailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": null, + "param_type": "keyword_only" + }, + "use_multi_vm_sync_point": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "use_multi_vm_sync_point": { + "attr_type": "use_multi_vm_sync_point" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanInMageFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanInMageRcmFailbackFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": null, + "param_type": "keyword_only" + }, + "use_multi_vm_sync_point": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "use_multi_vm_sync_point": { + "attr_type": "use_multi_vm_sync_point" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanInMageRcmFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_type": { + "default": null, + "param_type": "keyword_only" + }, + "use_multi_vm_sync_point": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "use_multi_vm_sync_point": { + "attr_type": "use_multi_vm_sync_point" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanManualActionDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "description": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "description": { + "attr_type": "description" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanPlannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanPlannedFailoverInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": null, + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "LATEST": "LATEST", + "LATEST_APPLICATION_CONSISTENT": "LATEST_APPLICATION_CONSISTENT", + "LATEST_CRASH_CONSISTENT": "LATEST_CRASH_CONSISTENT", + "LATEST_PROCESSED": "LATEST_PROCESSED" + } + }, + "RecoveryPlanProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "failover_deployment_model": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_providers": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_operations": { + "default": "none", + "param_type": "keyword_only" + }, + "last_planned_failover_time": { + "default": "none", + "param_type": "keyword_only" + }, + "last_unplanned_failover_time": { + "default": "none", + "param_type": "keyword_only" + }, + "last_test_failover_time": { + "default": "none", + "param_type": "keyword_only" + }, + "current_scenario": { + "default": "none", + "param_type": "keyword_only" + }, + "current_scenario_status": { + "default": "none", + "param_type": "keyword_only" + }, + "current_scenario_status_description": { + "default": "none", + "param_type": "keyword_only" + }, + "groups": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "primary_fabric_id": { + "attr_type": "primary_fabric_id" + }, + "primary_fabric_friendly_name": { + "attr_type": "primary_fabric_friendly_name" + }, + "recovery_fabric_id": { + "attr_type": "recovery_fabric_id" + }, + "recovery_fabric_friendly_name": { + "attr_type": "recovery_fabric_friendly_name" + }, + "failover_deployment_model": { + "attr_type": "failover_deployment_model" + }, + "replication_providers": { + "attr_type": "replication_providers" + }, + "allowed_operations": { + "attr_type": "allowed_operations" + }, + "last_planned_failover_time": { + "attr_type": "last_planned_failover_time" + }, + "last_unplanned_failover_time": { + "attr_type": "last_unplanned_failover_time" + }, + "last_test_failover_time": { + "attr_type": "last_test_failover_time" + }, + "current_scenario": { + "attr_type": "current_scenario" + }, + "current_scenario_status": { + "attr_type": "current_scenario_status" + }, + "current_scenario_status_description": { + "attr_type": "current_scenario_status_description" + }, + "groups": { + "attr_type": "groups" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanProtectedItem": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "id": { + "default": "none", + "param_type": "keyword_only" + }, + "virtual_machine_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": "id" + }, + "virtual_machine_id": { + "attr_type": "virtual_machine_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanProviderSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanProviderSpecificFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanScriptActionDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "path": { + "default": null, + "param_type": "keyword_only" + }, + "fabric_location": { + "default": null, + "param_type": "keyword_only" + }, + "timeout": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "path": { + "attr_type": "path" + }, + "timeout": { + "attr_type": "timeout" + }, + "fabric_location": { + "attr_type": "fabric_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanShutdownGroupTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "child_tasks": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "rp_group_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "name": { + "attr_type": "name" + }, + "group_id": { + "attr_type": "group_id" + }, + "rp_group_type": { + "attr_type": "rp_group_type" + }, + "child_tasks": { + "attr_type": "child_tasks" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanTestFailoverCleanupInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanTestFailoverCleanupInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "comments": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "comments": { + "attr_type": "comments" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanTestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanTestFailoverInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": null, + "param_type": "keyword_only" + }, + "network_type": { + "default": null, + "param_type": "keyword_only" + }, + "network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "network_type": { + "attr_type": "network_type" + }, + "network_id": { + "attr_type": "network_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanUnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPlanUnplannedFailoverInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": null, + "param_type": "keyword_only" + }, + "source_site_operations": { + "default": null, + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "source_site_operations": { + "attr_type": "source_site_operations" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPoint": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPointCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPointProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_time": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_point_type": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "recovery_point_time": { + "attr_type": "recovery_point_time" + }, + "recovery_point_type": { + "attr_type": "recovery_point_type" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryPointSyncType": { + "type": "Enum", + "methods": {}, + "properties": { + "MULTI_VM_SYNC_RECOVERY_POINT": "MULTI_VM_SYNC_RECOVERY_POINT", + "PER_VM_RECOVERY_POINT": "PER_VM_RECOVERY_POINT" + } + }, + "RecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "CUSTOM": "CUSTOM", + "LATEST_TAG": "LATEST_TAG", + "LATEST_TIME": "LATEST_TIME" + } + }, + "RecoveryProximityPlacementGroupCustomDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryResourceGroupCustomDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryServicesProvider": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryServicesProviderCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryServicesProviderProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_type": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_version": { + "default": "none", + "param_type": "keyword_only" + }, + "server_version": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_version_state": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_version_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heart_beat": { + "default": "none", + "param_type": "keyword_only" + }, + "connection_status": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_item_count": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_scenarios": { + "default": "none", + "param_type": "keyword_only" + }, + "health_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "dra_identifier": { + "default": "none", + "param_type": "keyword_only" + }, + "machine_id": { + "default": "none", + "param_type": "keyword_only" + }, + "machine_name": { + "default": "none", + "param_type": "keyword_only" + }, + "bios_id": { + "default": "none", + "param_type": "keyword_only" + }, + "authentication_identity_details": { + "default": "none", + "param_type": "keyword_only" + }, + "resource_access_identity_details": { + "default": "none", + "param_type": "keyword_only" + }, + "data_plane_authentication_identity_details": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_version_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "fabric_type": { + "attr_type": "fabric_type" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "provider_version": { + "attr_type": "provider_version" + }, + "server_version": { + "attr_type": "server_version" + }, + "provider_version_state": { + "attr_type": "provider_version_state" + }, + "provider_version_expiry_date": { + "attr_type": "provider_version_expiry_date" + }, + "fabric_friendly_name": { + "attr_type": "fabric_friendly_name" + }, + "last_heart_beat": { + "attr_type": "last_heart_beat" + }, + "connection_status": { + "attr_type": "connection_status" + }, + "protected_item_count": { + "attr_type": "protected_item_count" + }, + "allowed_scenarios": { + "attr_type": "allowed_scenarios" + }, + "health_error_details": { + "attr_type": "health_error_details" + }, + "dra_identifier": { + "attr_type": "dra_identifier" + }, + "machine_id": { + "attr_type": "machine_id" + }, + "machine_name": { + "attr_type": "machine_name" + }, + "bios_id": { + "attr_type": "bios_id" + }, + "authentication_identity_details": { + "attr_type": "authentication_identity_details" + }, + "resource_access_identity_details": { + "attr_type": "resource_access_identity_details" + }, + "data_plane_authentication_identity_details": { + "attr_type": "data_plane_authentication_identity_details" + }, + "provider_version_details": { + "attr_type": "provider_version_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RecoveryVirtualNetworkCustomDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RemoveDisksInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RemoveDisksInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RemoveDisksProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RemoveProtectionContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RemoveProtectionContainerMappingInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_input": { + "attr_type": "provider_specific_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RenewCertificateInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RenewCertificateInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "renew_certificate_type": { + "attr_type": "renew_certificate_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationAgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationAppliance": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationApplianceProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationEligibilityResults": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "id": { + "attr_type": null + }, + "properties": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationEligibilityResultsCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationEligibilityResultsErrorInfo": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "code": { + "default": "none", + "param_type": "keyword_only" + }, + "message": { + "default": "none", + "param_type": "keyword_only" + }, + "possible_causes": { + "default": "none", + "param_type": "keyword_only" + }, + "recommended_action": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "code": { + "attr_type": "code" + }, + "message": { + "attr_type": "message" + }, + "possible_causes": { + "attr_type": "possible_causes" + }, + "recommended_action": { + "attr_type": "recommended_action" + }, + "status": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationEligibilityResultsProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "errors": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "client_request_id": { + "attr_type": null + }, + "errors": { + "attr_type": "errors" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationGroupDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectedItem": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectedItemCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectedItemOperation": { + "type": "Enum", + "methods": {}, + "properties": { + "CANCEL_FAILOVER": "CANCEL_FAILOVER", + "CHANGE_PIT": "CHANGE_PIT", + "COMMIT": "COMMIT", + "COMPLETE_MIGRATION": "COMPLETE_MIGRATION", + "DISABLE_PROTECTION": "DISABLE_PROTECTION", + "FAILBACK": "FAILBACK", + "FINALIZE_FAILBACK": "FINALIZE_FAILBACK", + "PLANNED_FAILOVER": "PLANNED_FAILOVER", + "REPAIR_REPLICATION": "REPAIR_REPLICATION", + "REVERSE_REPLICATE": "REVERSE_REPLICATE", + "SWITCH_PROTECTION": "SWITCH_PROTECTION", + "TEST_FAILOVER": "TEST_FAILOVER", + "TEST_FAILOVER_CLEANUP": "TEST_FAILOVER_CLEANUP", + "UNPLANNED_FAILOVER": "UNPLANNED_FAILOVER" + } + }, + "ReplicationProtectedItemProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_item_type": { + "default": "none", + "param_type": "keyword_only" + }, + "protectable_item_id": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_services_provider_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_fabric_provider": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_fabric_id": { + "default": "none", + "param_type": "keyword_only" + }, + "primary_protection_container_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_protection_container_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_state": { + "default": "none", + "param_type": "keyword_only" + }, + "protection_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "active_location": { + "default": "none", + "param_type": "keyword_only" + }, + "test_failover_state": { + "default": "none", + "param_type": "keyword_only" + }, + "test_failover_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "switch_provider_state": { + "default": "none", + "param_type": "keyword_only" + }, + "switch_provider_state_description": { + "default": "none", + "param_type": "keyword_only" + }, + "allowed_operations": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_health": { + "default": "none", + "param_type": "keyword_only" + }, + "failover_health": { + "default": "none", + "param_type": "keyword_only" + }, + "health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_id": { + "default": "none", + "param_type": "keyword_only" + }, + "policy_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "last_successful_failover_time": { + "default": "none", + "param_type": "keyword_only" + }, + "last_successful_test_failover_time": { + "default": "none", + "param_type": "keyword_only" + }, + "current_scenario": { + "default": "none", + "param_type": "keyword_only" + }, + "failover_recovery_point_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_container_id": { + "default": "none", + "param_type": "keyword_only" + }, + "event_correlation_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "protected_item_type": { + "attr_type": "protected_item_type" + }, + "protectable_item_id": { + "attr_type": "protectable_item_id" + }, + "recovery_services_provider_id": { + "attr_type": "recovery_services_provider_id" + }, + "primary_fabric_friendly_name": { + "attr_type": "primary_fabric_friendly_name" + }, + "primary_fabric_provider": { + "attr_type": "primary_fabric_provider" + }, + "recovery_fabric_friendly_name": { + "attr_type": "recovery_fabric_friendly_name" + }, + "recovery_fabric_id": { + "attr_type": "recovery_fabric_id" + }, + "primary_protection_container_friendly_name": { + "attr_type": "primary_protection_container_friendly_name" + }, + "recovery_protection_container_friendly_name": { + "attr_type": "recovery_protection_container_friendly_name" + }, + "protection_state": { + "attr_type": "protection_state" + }, + "protection_state_description": { + "attr_type": "protection_state_description" + }, + "active_location": { + "attr_type": "active_location" + }, + "test_failover_state": { + "attr_type": "test_failover_state" + }, + "test_failover_state_description": { + "attr_type": "test_failover_state_description" + }, + "switch_provider_state": { + "attr_type": "switch_provider_state" + }, + "switch_provider_state_description": { + "attr_type": "switch_provider_state_description" + }, + "allowed_operations": { + "attr_type": "allowed_operations" + }, + "replication_health": { + "attr_type": "replication_health" + }, + "failover_health": { + "attr_type": "failover_health" + }, + "health_errors": { + "attr_type": "health_errors" + }, + "policy_id": { + "attr_type": "policy_id" + }, + "policy_friendly_name": { + "attr_type": "policy_friendly_name" + }, + "last_successful_failover_time": { + "attr_type": "last_successful_failover_time" + }, + "last_successful_test_failover_time": { + "attr_type": "last_successful_test_failover_time" + }, + "current_scenario": { + "attr_type": "current_scenario" + }, + "failover_recovery_point_id": { + "attr_type": "failover_recovery_point_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "recovery_container_id": { + "attr_type": "recovery_container_id" + }, + "event_correlation_id": { + "attr_type": "event_correlation_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectionIntent": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectionIntentCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectionIntentProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "job_id": { + "attr_type": null + }, + "job_state": { + "attr_type": null + }, + "is_active": { + "attr_type": null + }, + "creation_time_utc": { + "attr_type": null + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProtectionIntentProviderSpecificSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProviderContainerUnmappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": "instance_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProviderSpecificContainerCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProviderSpecificContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProviderSpecificSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReplicationProviderSpecificUpdateContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReprotectAgentDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "bios_id": { + "attr_type": null + }, + "fabric_object_id": { + "attr_type": null + }, + "fqdn": { + "attr_type": null + }, + "version": { + "attr_type": null + }, + "last_heartbeat_utc": { + "attr_type": null + }, + "health": { + "attr_type": null + }, + "health_errors": { + "attr_type": null + }, + "protected_item_count": { + "attr_type": null + }, + "accessible_datastores": { + "attr_type": null + }, + "vcenter_id": { + "attr_type": null + }, + "last_discovery_in_utc": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResolveHealthError": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "health_error_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "health_error_id": { + "attr_type": "health_error_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResolveHealthInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResolveHealthInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "health_errors": { + "attr_type": "health_errors" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "Resource": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResourceHealthSummary": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_count": { + "default": "none", + "param_type": "keyword_only" + }, + "issues": { + "default": "none", + "param_type": "keyword_only" + }, + "categorized_resource_counts": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_count": { + "attr_type": "resource_count" + }, + "issues": { + "attr_type": "issues" + }, + "categorized_resource_counts": { + "attr_type": "categorized_resource_counts" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResumeJobParams": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResumeJobParamsProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "comments": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "comments": { + "attr_type": "comments" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResumeReplicationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResumeReplicationInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResumeReplicationProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResyncInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResyncInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResyncProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ResyncState": { + "type": "Enum", + "methods": {}, + "properties": { + "NONE": "NONE", + "PREPARED_FOR_RESYNCHRONIZATION": "PREPARED_FOR_RESYNCHRONIZATION", + "STARTED_RESYNCHRONIZATION": "STARTED_RESYNCHRONIZATION" + } + }, + "RetentionVolume": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "volume_name": { + "default": "none", + "param_type": "keyword_only" + }, + "capacity_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "free_space_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "threshold_percentage": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "volume_name": { + "attr_type": "volume_name" + }, + "capacity_in_bytes": { + "attr_type": "capacity_in_bytes" + }, + "free_space_in_bytes": { + "attr_type": "free_space_in_bytes" + }, + "threshold_percentage": { + "attr_type": "threshold_percentage" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReverseReplicationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReverseReplicationInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ReverseReplicationProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RoleAssignment": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "id": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "scope": { + "default": "none", + "param_type": "keyword_only" + }, + "principal_id": { + "default": "none", + "param_type": "keyword_only" + }, + "role_definition_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": "id" + }, + "name": { + "attr_type": "name" + }, + "scope": { + "attr_type": "scope" + }, + "principal_id": { + "attr_type": "principal_id" + }, + "role_definition_id": { + "attr_type": "role_definition_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "RpInMageRecoveryPointType": { + "type": "Enum", + "methods": {}, + "properties": { + "CUSTOM": "CUSTOM", + "LATEST_TAG": "LATEST_TAG", + "LATEST_TIME": "LATEST_TIME" + } + }, + "RunAsAccount": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "account_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "account_id": { + "attr_type": "account_id" + }, + "account_name": { + "attr_type": "account_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "ScriptActionTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "path": { + "default": "none", + "param_type": "keyword_only" + }, + "output": { + "default": "none", + "param_type": "keyword_only" + }, + "is_primary_side_script": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "name": { + "attr_type": "name" + }, + "path": { + "attr_type": "path" + }, + "output": { + "attr_type": "output" + }, + "is_primary_side_script": { + "attr_type": "is_primary_side_script" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SecurityType": { + "type": "Enum", + "methods": {}, + "properties": { + "CONFIDENTIAL_VM": "CONFIDENTIAL_VM", + "NONE": "NONE", + "TRUSTED_LAUNCH": "TRUSTED_LAUNCH" + } + }, + "ServiceError": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "code": { + "default": "none", + "param_type": "keyword_only" + }, + "message": { + "default": "none", + "param_type": "keyword_only" + }, + "possible_causes": { + "default": "none", + "param_type": "keyword_only" + }, + "recommended_action": { + "default": "none", + "param_type": "keyword_only" + }, + "activity_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "code": { + "attr_type": "code" + }, + "message": { + "attr_type": "message" + }, + "possible_causes": { + "attr_type": "possible_causes" + }, + "recommended_action": { + "attr_type": "recommended_action" + }, + "activity_id": { + "attr_type": "activity_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SetMultiVmSyncStatus": { + "type": "Enum", + "methods": {}, + "properties": { + "DISABLE": "DISABLE", + "ENABLE": "ENABLE" + } + }, + "Severity": { + "type": "Enum", + "methods": {}, + "properties": { + "ERROR": "ERROR", + "INFO": "INFO", + "NONE": "NONE", + "WARNING": "WARNING" + } + }, + "SourceSiteOperations": { + "type": "Enum", + "methods": {}, + "properties": { + "NOT_REQUIRED": "NOT_REQUIRED", + "REQUIRED": "REQUIRED" + } + }, + "SqlServerLicenseType": { + "type": "Enum", + "methods": {}, + "properties": { + "AHUB": "AHUB", + "NOT_SPECIFIED": "NOT_SPECIFIED", + "NO_LICENSE_TYPE": "NO_LICENSE_TYPE", + "PAYG": "PAYG" + } + }, + "StorageAccountCustomDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "resource_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassification": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassificationCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassificationMapping": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassificationMappingCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassificationMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassificationMappingProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_storage_classification_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_storage_classification_id": { + "attr_type": "target_storage_classification_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageClassificationProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "StorageMappingInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_storage_classification_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_storage_classification_id": { + "attr_type": "target_storage_classification_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "Subnet": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "address_list": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": "name" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "address_list": { + "attr_type": "address_list" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SupportedOSDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "os_name": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "os_versions": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "os_name": { + "attr_type": "os_name" + }, + "os_type": { + "attr_type": "os_type" + }, + "os_versions": { + "attr_type": "os_versions" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SupportedOSProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "supported_os_list": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "supported_os_list": { + "attr_type": "supported_os_list" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SupportedOSProperty": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "supported_os": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": "instance_type" + }, + "supported_os": { + "attr_type": "supported_os" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SupportedOperatingSystems": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProtectionInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProtectionInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replication_protected_item_name": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "replication_protected_item_name": { + "attr_type": "replication_protected_item_name" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProtectionJobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "affected_object_details": { + "default": "none", + "param_type": "keyword_only" + }, + "new_replication_protected_item_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "new_replication_protected_item_id": { + "attr_type": "new_replication_protected_item_id" + }, + "affected_object_details": { + "attr_type": "affected_object_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProtectionProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProviderInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_instance_type": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_instance_type": { + "attr_type": "target_instance_type" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "SwitchProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TargetComputeSize": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "id": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "type": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "id": { + "attr_type": "id" + }, + "name": { + "attr_type": "name" + }, + "type": { + "attr_type": "type" + }, + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TargetComputeSizeCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TargetComputeSizeProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "cpu_cores_count": { + "default": "none", + "param_type": "keyword_only" + }, + "memory_in_gb": { + "default": "none", + "param_type": "keyword_only" + }, + "max_data_disk_count": { + "default": "none", + "param_type": "keyword_only" + }, + "max_nics_count": { + "default": "none", + "param_type": "keyword_only" + }, + "errors": { + "default": "none", + "param_type": "keyword_only" + }, + "high_iops_supported": { + "default": "none", + "param_type": "keyword_only" + }, + "hyper_v_generations": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "name": { + "attr_type": "name" + }, + "friendly_name": { + "attr_type": "friendly_name" + }, + "cpu_cores_count": { + "attr_type": "cpu_cores_count" + }, + "v_cpus_available": { + "attr_type": null + }, + "memory_in_gb": { + "attr_type": "memory_in_gb" + }, + "max_data_disk_count": { + "attr_type": "max_data_disk_count" + }, + "max_nics_count": { + "attr_type": "max_nics_count" + }, + "errors": { + "attr_type": "errors" + }, + "high_iops_supported": { + "attr_type": "high_iops_supported" + }, + "hyper_v_generations": { + "attr_type": "hyper_v_generations" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TaskTypeDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestFailoverCleanupInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestFailoverCleanupInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "comments": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "comments": { + "attr_type": "comments" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestFailoverInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": "none", + "param_type": "keyword_only" + }, + "network_type": { + "default": "none", + "param_type": "keyword_only" + }, + "network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "network_type": { + "attr_type": "network_type" + }, + "network_id": { + "attr_type": "network_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestFailoverJobDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "affected_object_details": { + "default": "none", + "param_type": "keyword_only" + }, + "test_failover_status": { + "default": "none", + "param_type": "keyword_only" + }, + "comments": { + "default": "none", + "param_type": "keyword_only" + }, + "network_name": { + "default": "none", + "param_type": "keyword_only" + }, + "network_friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "network_type": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_item_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "test_failover_status": { + "attr_type": "test_failover_status" + }, + "comments": { + "attr_type": "comments" + }, + "network_name": { + "attr_type": "network_name" + }, + "network_friendly_name": { + "attr_type": "network_friendly_name" + }, + "network_type": { + "attr_type": "network_type" + }, + "protected_item_details": { + "attr_type": "protected_item_details" + }, + "affected_object_details": { + "attr_type": "affected_object_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestFailoverProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestMigrateCleanupInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestMigrateCleanupInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "comments": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "comments": { + "attr_type": "comments" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestMigrateInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestMigrateInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestMigrateProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "TestMigrationState": { + "type": "Enum", + "methods": {}, + "properties": { + "NONE": "NONE", + "TEST_MIGRATION_CLEANUP_IN_PROGRESS": "TEST_MIGRATION_CLEANUP_IN_PROGRESS", + "TEST_MIGRATION_COMPLETED_WITH_INFORMATION": "TEST_MIGRATION_COMPLETED_WITH_INFORMATION", + "TEST_MIGRATION_FAILED": "TEST_MIGRATION_FAILED", + "TEST_MIGRATION_IN_PROGRESS": "TEST_MIGRATION_IN_PROGRESS", + "TEST_MIGRATION_PARTIALLY_SUCCEEDED": "TEST_MIGRATION_PARTIALLY_SUCCEEDED", + "TEST_MIGRATION_SUCCEEDED": "TEST_MIGRATION_SUCCEEDED" + } + }, + "UnplannedFailoverInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UnplannedFailoverInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_direction": { + "default": "none", + "param_type": "keyword_only" + }, + "source_site_operations": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "failover_direction": { + "attr_type": "failover_direction" + }, + "source_site_operations": { + "attr_type": "source_site_operations" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UnplannedFailoverProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateApplianceForReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateApplianceForReplicationProtectedItemInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_appliance_id": { + "default": null, + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_appliance_id": { + "attr_type": "target_appliance_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateApplianceForReplicationProtectedItemProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateDiskInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "target_disk_name": { + "attr_type": "target_disk_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateMigrationItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateMigrationItemInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_details": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateMigrationItemProviderSpecificInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateMobilityServiceRequest": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateMobilityServiceRequestProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateNetworkMappingInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_fabric_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "recovery_fabric_name": { + "attr_type": "recovery_fabric_name" + }, + "recovery_network_id": { + "attr_type": "recovery_network_id" + }, + "fabric_specific_details": { + "attr_type": "fabric_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdatePolicyInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdatePolicyInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replication_provider_settings": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "replication_provider_settings": { + "attr_type": "replication_provider_settings" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateProtectionContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateProtectionContainerMappingInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_specific_input": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "provider_specific_input": { + "attr_type": "provider_specific_input" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateRecoveryPlanInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateRecoveryPlanInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "groups": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "groups": { + "attr_type": "groups" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateReplicationProtectedItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateReplicationProtectedItemInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_azure_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_azure_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_recovery_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_tfo_azure_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "selected_source_nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_rdp_on_target_option": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "provider_specific_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "recovery_azure_vm_name": { + "attr_type": "recovery_azure_vm_name" + }, + "recovery_azure_vm_size": { + "attr_type": "recovery_azure_vm_size" + }, + "selected_recovery_azure_network_id": { + "attr_type": "selected_recovery_azure_network_id" + }, + "selected_tfo_azure_network_id": { + "attr_type": "selected_tfo_azure_network_id" + }, + "selected_source_nic_id": { + "attr_type": "selected_source_nic_id" + }, + "enable_rdp_on_target_option": { + "attr_type": "enable_rdp_on_target_option" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "license_type": { + "attr_type": "license_type" + }, + "recovery_availability_set_id": { + "attr_type": "recovery_availability_set_id" + }, + "provider_specific_details": { + "attr_type": "provider_specific_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateReplicationProtectedItemProviderInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateVCenterRequest": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "UpdateVCenterRequestProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "port": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "port": { + "attr_type": "port" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VCenter": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VCenterCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VCenterProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "friendly_name": { + "default": "none", + "param_type": "keyword_only" + }, + "internal_id": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "discovery_status": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_id": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "infrastructure_id": { + "default": "none", + "param_type": "keyword_only" + }, + "port": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "fabric_arm_resource_name": { + "default": "none", + "param_type": "keyword_only" + }, + "health_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "friendly_name": { + "attr_type": "friendly_name" + }, + "internal_id": { + "attr_type": "internal_id" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "discovery_status": { + "attr_type": "discovery_status" + }, + "process_server_id": { + "attr_type": "process_server_id" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "infrastructure_id": { + "attr_type": "infrastructure_id" + }, + "port": { + "attr_type": "port" + }, + "run_as_account_id": { + "attr_type": "run_as_account_id" + }, + "fabric_arm_resource_name": { + "attr_type": "fabric_arm_resource_name" + }, + "health_errors": { + "attr_type": "health_errors" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMNicDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "replica_nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "source_nic_arm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "v_m_network_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_vm_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_configs": { + "default": "none", + "param_type": "keyword_only" + }, + "selection_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_network_security_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_accelerated_networking_on_recovery": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_vm_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_network_security_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_accelerated_networking_on_tfo": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_nic_resource_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "reuse_existing_nic": { + "default": "bool", + "param_type": "keyword_only" + }, + "tfo_recovery_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_recovery_nic_resource_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_reuse_existing_nic": { + "default": "bool", + "param_type": "keyword_only" + }, + "target_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "nic_id": { + "attr_type": "nic_id" + }, + "replica_nic_id": { + "attr_type": "replica_nic_id" + }, + "source_nic_arm_id": { + "attr_type": "source_nic_arm_id" + }, + "v_m_network_name": { + "attr_type": "v_m_network_name" + }, + "recovery_vm_network_id": { + "attr_type": "recovery_vm_network_id" + }, + "ip_configs": { + "attr_type": "ip_configs" + }, + "selection_type": { + "attr_type": "selection_type" + }, + "recovery_network_security_group_id": { + "attr_type": "recovery_network_security_group_id" + }, + "enable_accelerated_networking_on_recovery": { + "attr_type": "enable_accelerated_networking_on_recovery" + }, + "tfo_vm_network_id": { + "attr_type": "tfo_vm_network_id" + }, + "tfo_network_security_group_id": { + "attr_type": "tfo_network_security_group_id" + }, + "enable_accelerated_networking_on_tfo": { + "attr_type": "enable_accelerated_networking_on_tfo" + }, + "recovery_nic_name": { + "attr_type": "recovery_nic_name" + }, + "recovery_nic_resource_group_name": { + "attr_type": "recovery_nic_resource_group_name" + }, + "reuse_existing_nic": { + "attr_type": "reuse_existing_nic" + }, + "tfo_recovery_nic_name": { + "attr_type": "tfo_recovery_nic_name" + }, + "tfo_recovery_nic_resource_group_name": { + "attr_type": "tfo_recovery_nic_resource_group_name" + }, + "tfo_reuse_existing_nic": { + "attr_type": "tfo_reuse_existing_nic" + }, + "target_nic_name": { + "attr_type": "target_nic_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMNicInputDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_configs": { + "default": "none", + "param_type": "keyword_only" + }, + "selection_type": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_network_security_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_accelerated_networking_on_recovery": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_network_security_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "enable_accelerated_networking_on_tfo": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "recovery_nic_resource_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "reuse_existing_nic": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_nic_resource_group_name": { + "default": "none", + "param_type": "keyword_only" + }, + "tfo_reuse_existing_nic": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "nic_id": { + "attr_type": "nic_id" + }, + "ip_configs": { + "attr_type": "ip_configs" + }, + "selection_type": { + "attr_type": "selection_type" + }, + "recovery_network_security_group_id": { + "attr_type": "recovery_network_security_group_id" + }, + "enable_accelerated_networking_on_recovery": { + "attr_type": "enable_accelerated_networking_on_recovery" + }, + "tfo_network_security_group_id": { + "attr_type": "tfo_network_security_group_id" + }, + "enable_accelerated_networking_on_tfo": { + "attr_type": "enable_accelerated_networking_on_tfo" + }, + "recovery_nic_name": { + "attr_type": "recovery_nic_name" + }, + "recovery_nic_resource_group_name": { + "attr_type": "recovery_nic_resource_group_name" + }, + "reuse_existing_nic": { + "attr_type": "reuse_existing_nic" + }, + "tfo_nic_name": { + "attr_type": "tfo_nic_name" + }, + "tfo_nic_resource_group_name": { + "attr_type": "tfo_nic_resource_group_name" + }, + "tfo_reuse_existing_nic": { + "attr_type": "tfo_reuse_existing_nic" + }, + "target_nic_name": { + "attr_type": "target_nic_name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtContainerCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtContainerMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_location": { + "default": null, + "param_type": "keyword_only" + }, + "key_vault_id": { + "default": "none", + "param_type": "keyword_only" + }, + "key_vault_uri": { + "default": "none", + "param_type": "keyword_only" + }, + "storage_account_sas_secret_name": { + "default": "none", + "param_type": "keyword_only" + }, + "service_bus_connection_string_secret_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "key_vault_id": { + "attr_type": "key_vault_id" + }, + "key_vault_uri": { + "attr_type": "key_vault_uri" + }, + "storage_account_id": { + "attr_type": "storage_account_id" + }, + "storage_account_sas_secret_name": { + "attr_type": "storage_account_sas_secret_name" + }, + "service_bus_connection_string_secret_name": { + "attr_type": "service_bus_connection_string_secret_name" + }, + "target_location": { + "attr_type": "target_location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtDiskInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": null, + "param_type": "keyword_only" + }, + "is_os_disk": { + "default": null, + "param_type": "keyword_only" + }, + "log_storage_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "log_storage_account_sas_secret_name": { + "default": null, + "param_type": "keyword_only" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_encryption_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "disk_type": { + "attr_type": "disk_type" + }, + "is_os_disk": { + "attr_type": "is_os_disk" + }, + "log_storage_account_id": { + "attr_type": "log_storage_account_id" + }, + "log_storage_account_sas_secret_name": { + "attr_type": "log_storage_account_sas_secret_name" + }, + "disk_encryption_set_id": { + "attr_type": "disk_encryption_set_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtEnableMigrationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vmware_machine_id": { + "default": null, + "param_type": "keyword_only" + }, + "disks_to_include": { + "default": null, + "param_type": "keyword_only" + }, + "data_mover_run_as_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "snapshot_run_as_account_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_resource_group_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_network_id": { + "default": null, + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "perform_sql_bulk_registration": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "confidential_vm_key_vault_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_security_profile": { + "default": "none", + "param_type": "keyword_only" + }, + "target_boot_diagnostics_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "perform_auto_resync": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vmware_machine_id": { + "attr_type": "vmware_machine_id" + }, + "disks_to_include": { + "attr_type": "disks_to_include" + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "perform_sql_bulk_registration": { + "attr_type": "perform_sql_bulk_registration" + }, + "data_mover_run_as_account_id": { + "attr_type": "data_mover_run_as_account_id" + }, + "snapshot_run_as_account_id": { + "attr_type": "snapshot_run_as_account_id" + }, + "target_vm_name": { + "attr_type": "target_vm_name" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "target_resource_group_id": { + "attr_type": "target_resource_group_id" + }, + "target_network_id": { + "attr_type": "target_network_id" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "target_subnet_name": { + "attr_type": "target_subnet_name" + }, + "test_subnet_name": { + "attr_type": "test_subnet_name" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "confidential_vm_key_vault_id": { + "attr_type": "confidential_vm_key_vault_id" + }, + "target_vm_security_profile": { + "attr_type": "target_vm_security_profile" + }, + "target_boot_diagnostics_storage_account_id": { + "attr_type": "target_boot_diagnostics_storage_account_id" + }, + "perform_auto_resync": { + "attr_type": "perform_auto_resync" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "seed_disk_tags": { + "attr_type": "seed_disk_tags" + }, + "target_disk_tags": { + "attr_type": "target_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtEventDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "migration_item_name": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtMigrateInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "perform_shutdown": { + "default": null, + "param_type": "keyword_only" + }, + "os_upgrade_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "perform_shutdown": { + "attr_type": "perform_shutdown" + }, + "os_upgrade_version": { + "attr_type": "os_upgrade_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtMigrationDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "target_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "confidential_vm_key_vault_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_security_profile": { + "default": "none", + "param_type": "keyword_only" + }, + "target_boot_diagnostics_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "target_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "perform_auto_resync": { + "default": "none", + "param_type": "keyword_only" + }, + "seed_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "supported_os_versions": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vmware_machine_id": { + "attr_type": null + }, + "os_type": { + "attr_type": null + }, + "os_name": { + "attr_type": null + }, + "firmware_type": { + "attr_type": null + }, + "target_generation": { + "attr_type": null + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "data_mover_run_as_account_id": { + "attr_type": null + }, + "snapshot_run_as_account_id": { + "attr_type": null + }, + "storage_account_id": { + "attr_type": null + }, + "target_vm_name": { + "attr_type": "target_vm_name" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "target_location": { + "attr_type": null + }, + "target_resource_group_id": { + "attr_type": "target_resource_group_id" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "confidential_vm_key_vault_id": { + "attr_type": "confidential_vm_key_vault_id" + }, + "target_vm_security_profile": { + "attr_type": "target_vm_security_profile" + }, + "target_boot_diagnostics_storage_account_id": { + "attr_type": "target_boot_diagnostics_storage_account_id" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "protected_disks": { + "attr_type": "protected_disks" + }, + "target_network_id": { + "attr_type": "target_network_id" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "migration_recovery_point_id": { + "attr_type": null + }, + "last_recovery_point_received": { + "attr_type": null + }, + "last_recovery_point_id": { + "attr_type": null + }, + "initial_seeding_progress_percentage": { + "attr_type": null + }, + "migration_progress_percentage": { + "attr_type": null + }, + "resync_progress_percentage": { + "attr_type": null + }, + "resume_progress_percentage": { + "attr_type": null + }, + "delta_sync_progress_percentage": { + "attr_type": null + }, + "is_check_sum_resync_cycle": { + "attr_type": null + }, + "initial_seeding_retry_count": { + "attr_type": null + }, + "resync_retry_count": { + "attr_type": null + }, + "resume_retry_count": { + "attr_type": null + }, + "delta_sync_retry_count": { + "attr_type": null + }, + "resync_required": { + "attr_type": null + }, + "resync_state": { + "attr_type": null + }, + "perform_auto_resync": { + "attr_type": "perform_auto_resync" + }, + "seed_disk_tags": { + "attr_type": "seed_disk_tags" + }, + "target_disk_tags": { + "attr_type": "target_disk_tags" + }, + "supported_os_versions": { + "attr_type": "supported_os_versions" + }, + "appliance_monitoring_details": { + "attr_type": null + }, + "gateway_operation_details": { + "attr_type": null + }, + "operation_name": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtNicDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "is_primary_nic": { + "default": "none", + "param_type": "keyword_only" + }, + "target_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "target_ip_address_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "test_ip_address_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "is_selected_for_migration": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "nic_id": { + "attr_type": null + }, + "is_primary_nic": { + "attr_type": "is_primary_nic" + }, + "source_ip_address": { + "attr_type": null + }, + "source_ip_address_type": { + "attr_type": null + }, + "source_network_id": { + "attr_type": null + }, + "target_ip_address": { + "attr_type": "target_ip_address" + }, + "target_ip_address_type": { + "attr_type": "target_ip_address_type" + }, + "target_subnet_name": { + "attr_type": "target_subnet_name" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "test_subnet_name": { + "attr_type": "test_subnet_name" + }, + "test_ip_address": { + "attr_type": "test_ip_address" + }, + "test_ip_address_type": { + "attr_type": "test_ip_address_type" + }, + "target_nic_name": { + "attr_type": "target_nic_name" + }, + "is_selected_for_migration": { + "attr_type": "is_selected_for_migration" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtNicInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "nic_id": { + "default": null, + "param_type": "keyword_only" + }, + "is_primary_nic": { + "default": null, + "param_type": "keyword_only" + }, + "target_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "is_selected_for_migration": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_subnet_name": { + "default": "none", + "param_type": "keyword_only" + }, + "test_static_ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "nic_id": { + "attr_type": "nic_id" + }, + "is_primary_nic": { + "attr_type": "is_primary_nic" + }, + "target_subnet_name": { + "attr_type": "target_subnet_name" + }, + "target_static_ip_address": { + "attr_type": "target_static_ip_address" + }, + "is_selected_for_migration": { + "attr_type": "is_selected_for_migration" + }, + "target_nic_name": { + "attr_type": "target_nic_name" + }, + "test_subnet_name": { + "attr_type": "test_subnet_name" + }, + "test_static_ip_address": { + "attr_type": "test_static_ip_address" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtPolicyCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_history_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history_in_minutes": { + "attr_type": "recovery_point_history_in_minutes" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtProtectedDiskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_type": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": null + }, + "disk_name": { + "attr_type": null + }, + "disk_type": { + "attr_type": "disk_type" + }, + "disk_path": { + "attr_type": null + }, + "is_os_disk": { + "attr_type": null + }, + "capacity_in_bytes": { + "attr_type": null + }, + "log_storage_account_id": { + "attr_type": null + }, + "log_storage_account_sas_secret_name": { + "attr_type": null + }, + "disk_encryption_set_id": { + "attr_type": null + }, + "seed_managed_disk_id": { + "attr_type": null + }, + "seed_blob_uri": { + "attr_type": null + }, + "target_managed_disk_id": { + "attr_type": null + }, + "target_blob_uri": { + "attr_type": null + }, + "target_disk_name": { + "attr_type": "target_disk_name" + }, + "gateway_operation_details": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtProtectionContainerMappingDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "excluded_skus": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "key_vault_id": { + "attr_type": null + }, + "key_vault_uri": { + "attr_type": null + }, + "storage_account_id": { + "attr_type": null + }, + "storage_account_sas_secret_name": { + "attr_type": null + }, + "service_bus_connection_string_secret_name": { + "attr_type": null + }, + "target_location": { + "attr_type": null + }, + "role_size_to_nic_count_map": { + "attr_type": null + }, + "excluded_skus": { + "attr_type": "excluded_skus" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtResumeReplicationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "delete_migration_resources": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "delete_migration_resources": { + "attr_type": "delete_migration_resources" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtResyncInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_cbt_reset": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "skip_cbt_reset": { + "attr_type": "skip_cbt_reset" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtSecurityProfileProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_vm_security_type": { + "default": "none", + "param_type": "keyword_only" + }, + "is_target_vm_secure_boot_enabled": { + "default": "none", + "param_type": "keyword_only" + }, + "is_target_vm_tpm_enabled": { + "default": "none", + "param_type": "keyword_only" + }, + "is_target_vm_integrity_monitoring_enabled": { + "default": "none", + "param_type": "keyword_only" + }, + "is_target_vm_confidential_encryption_enabled": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "target_vm_security_type": { + "attr_type": "target_vm_security_type" + }, + "is_target_vm_secure_boot_enabled": { + "attr_type": "is_target_vm_secure_boot_enabled" + }, + "is_target_vm_tpm_enabled": { + "attr_type": "is_target_vm_tpm_enabled" + }, + "is_target_vm_integrity_monitoring_enabled": { + "attr_type": "is_target_vm_integrity_monitoring_enabled" + }, + "is_target_vm_confidential_encryption_enabled": { + "attr_type": "is_target_vm_confidential_encryption_enabled" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtTestMigrateInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_id": { + "default": null, + "param_type": "keyword_only" + }, + "network_id": { + "default": null, + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "os_upgrade_version": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_id": { + "attr_type": "recovery_point_id" + }, + "network_id": { + "attr_type": "network_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "os_upgrade_version": { + "attr_type": "os_upgrade_version" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtUpdateDiskInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disk_id": { + "default": null, + "param_type": "keyword_only" + }, + "target_disk_name": { + "default": "none", + "param_type": "keyword_only" + }, + "is_os_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "disk_id": { + "attr_type": "disk_id" + }, + "target_disk_name": { + "attr_type": "target_disk_name" + }, + "is_os_disk": { + "attr_type": "is_os_disk" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareCbtUpdateMigrationItemInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "target_vm_name": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_size": { + "default": "none", + "param_type": "keyword_only" + }, + "target_resource_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_set_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_availability_zone": { + "default": "none", + "param_type": "keyword_only" + }, + "target_proximity_placement_group_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_boot_diagnostics_storage_account_id": { + "default": "none", + "param_type": "keyword_only" + }, + "target_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "test_network_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_nics": { + "default": "none", + "param_type": "keyword_only" + }, + "vm_disks": { + "default": "none", + "param_type": "keyword_only" + }, + "license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "sql_server_license_type": { + "default": "none", + "param_type": "keyword_only" + }, + "perform_auto_resync": { + "default": "none", + "param_type": "keyword_only" + }, + "target_vm_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_disk_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "target_nic_tags": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "target_vm_name": { + "attr_type": "target_vm_name" + }, + "target_vm_size": { + "attr_type": "target_vm_size" + }, + "target_resource_group_id": { + "attr_type": "target_resource_group_id" + }, + "target_availability_set_id": { + "attr_type": "target_availability_set_id" + }, + "target_availability_zone": { + "attr_type": "target_availability_zone" + }, + "target_proximity_placement_group_id": { + "attr_type": "target_proximity_placement_group_id" + }, + "target_boot_diagnostics_storage_account_id": { + "attr_type": "target_boot_diagnostics_storage_account_id" + }, + "target_network_id": { + "attr_type": "target_network_id" + }, + "test_network_id": { + "attr_type": "test_network_id" + }, + "vm_nics": { + "attr_type": "vm_nics" + }, + "vm_disks": { + "attr_type": "vm_disks" + }, + "license_type": { + "attr_type": "license_type" + }, + "sql_server_license_type": { + "attr_type": "sql_server_license_type" + }, + "perform_auto_resync": { + "attr_type": "perform_auto_resync" + }, + "target_vm_tags": { + "attr_type": "target_vm_tags" + }, + "target_disk_tags": { + "attr_type": "target_disk_tags" + }, + "target_nic_tags": { + "attr_type": "target_nic_tags" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "process_servers": { + "default": "none", + "param_type": "keyword_only" + }, + "master_target_servers": { + "default": "none", + "param_type": "keyword_only" + }, + "run_as_accounts": { + "default": "none", + "param_type": "keyword_only" + }, + "replication_pair_count": { + "default": "none", + "param_type": "keyword_only" + }, + "process_server_count": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_count": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_servers": { + "default": "none", + "param_type": "keyword_only" + }, + "system_load": { + "default": "none", + "param_type": "keyword_only" + }, + "system_load_status": { + "default": "none", + "param_type": "keyword_only" + }, + "cpu_load": { + "default": "none", + "param_type": "keyword_only" + }, + "cpu_load_status": { + "default": "none", + "param_type": "keyword_only" + }, + "total_memory_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "available_memory_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "memory_usage_status": { + "default": "none", + "param_type": "keyword_only" + }, + "total_space_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "available_space_in_bytes": { + "default": "none", + "param_type": "keyword_only" + }, + "space_usage_status": { + "default": "none", + "param_type": "keyword_only" + }, + "web_load": { + "default": "none", + "param_type": "keyword_only" + }, + "web_load_status": { + "default": "none", + "param_type": "keyword_only" + }, + "database_server_load": { + "default": "none", + "param_type": "keyword_only" + }, + "database_server_load_status": { + "default": "none", + "param_type": "keyword_only" + }, + "cs_service_status": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "host_name": { + "default": "none", + "param_type": "keyword_only" + }, + "last_heartbeat": { + "default": "none", + "param_type": "keyword_only" + }, + "version_status": { + "default": "none", + "param_type": "keyword_only" + }, + "ssl_cert_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "ssl_cert_expiry_remaining_days": { + "default": "none", + "param_type": "keyword_only" + }, + "ps_template_version": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version_details": { + "default": "none", + "param_type": "keyword_only" + }, + "switch_provider_blocking_error_details": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "process_servers": { + "attr_type": "process_servers" + }, + "master_target_servers": { + "attr_type": "master_target_servers" + }, + "run_as_accounts": { + "attr_type": "run_as_accounts" + }, + "replication_pair_count": { + "attr_type": "replication_pair_count" + }, + "process_server_count": { + "attr_type": "process_server_count" + }, + "agent_count": { + "attr_type": "agent_count" + }, + "protected_servers": { + "attr_type": "protected_servers" + }, + "system_load": { + "attr_type": "system_load" + }, + "system_load_status": { + "attr_type": "system_load_status" + }, + "cpu_load": { + "attr_type": "cpu_load" + }, + "cpu_load_status": { + "attr_type": "cpu_load_status" + }, + "total_memory_in_bytes": { + "attr_type": "total_memory_in_bytes" + }, + "available_memory_in_bytes": { + "attr_type": "available_memory_in_bytes" + }, + "memory_usage_status": { + "attr_type": "memory_usage_status" + }, + "total_space_in_bytes": { + "attr_type": "total_space_in_bytes" + }, + "available_space_in_bytes": { + "attr_type": "available_space_in_bytes" + }, + "space_usage_status": { + "attr_type": "space_usage_status" + }, + "web_load": { + "attr_type": "web_load" + }, + "web_load_status": { + "attr_type": "web_load_status" + }, + "database_server_load": { + "attr_type": "database_server_load" + }, + "database_server_load_status": { + "attr_type": "database_server_load_status" + }, + "cs_service_status": { + "attr_type": "cs_service_status" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "agent_version": { + "attr_type": "agent_version" + }, + "host_name": { + "attr_type": "host_name" + }, + "last_heartbeat": { + "attr_type": "last_heartbeat" + }, + "version_status": { + "attr_type": "version_status" + }, + "ssl_cert_expiry_date": { + "attr_type": "ssl_cert_expiry_date" + }, + "ssl_cert_expiry_remaining_days": { + "attr_type": "ssl_cert_expiry_remaining_days" + }, + "ps_template_version": { + "attr_type": "ps_template_version" + }, + "agent_expiry_date": { + "attr_type": "agent_expiry_date" + }, + "agent_version_details": { + "attr_type": "agent_version_details" + }, + "switch_provider_blocking_error_details": { + "attr_type": "switch_provider_blocking_error_details" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareV2FabricCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_solution_id": { + "default": null, + "param_type": "keyword_only" + }, + "vmware_site_id": { + "default": "none", + "param_type": "keyword_only" + }, + "physical_site_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vmware_site_id": { + "attr_type": "vmware_site_id" + }, + "physical_site_id": { + "attr_type": "physical_site_id" + }, + "migration_solution_id": { + "attr_type": "migration_solution_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareV2FabricSpecificDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vmware_site_id": { + "attr_type": null + }, + "physical_site_id": { + "attr_type": null + }, + "migration_solution_id": { + "attr_type": null + }, + "service_endpoint": { + "attr_type": null + }, + "service_resource_id": { + "attr_type": null + }, + "service_container_id": { + "attr_type": null + }, + "process_servers": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VMwareVirtualMachineDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "agent_generated_id": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_installed": { + "default": "none", + "param_type": "keyword_only" + }, + "os_type": { + "default": "none", + "param_type": "keyword_only" + }, + "agent_version": { + "default": "none", + "param_type": "keyword_only" + }, + "ip_address": { + "default": "none", + "param_type": "keyword_only" + }, + "powered_on": { + "default": "none", + "param_type": "keyword_only" + }, + "v_center_infrastructure_id": { + "default": "none", + "param_type": "keyword_only" + }, + "discovery_type": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "validation_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "agent_generated_id": { + "attr_type": "agent_generated_id" + }, + "agent_installed": { + "attr_type": "agent_installed" + }, + "os_type": { + "attr_type": "os_type" + }, + "agent_version": { + "attr_type": "agent_version" + }, + "ip_address": { + "attr_type": "ip_address" + }, + "powered_on": { + "attr_type": "powered_on" + }, + "v_center_infrastructure_id": { + "attr_type": "v_center_infrastructure_id" + }, + "discovery_type": { + "attr_type": "discovery_type" + }, + "disk_details": { + "attr_type": "disk_details" + }, + "validation_errors": { + "attr_type": "validation_errors" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultHealthDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultHealthProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_errors": { + "default": "none", + "param_type": "keyword_only" + }, + "protected_items_health": { + "default": "none", + "param_type": "keyword_only" + }, + "fabrics_health": { + "default": "none", + "param_type": "keyword_only" + }, + "containers_health": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "vault_errors": { + "attr_type": "vault_errors" + }, + "protected_items_health": { + "attr_type": "protected_items_health" + }, + "fabrics_health": { + "attr_type": "fabrics_health" + }, + "containers_health": { + "attr_type": "containers_health" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultSetting": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "location": { + "default": "none", + "param_type": "keyword_only" + }, + "properties": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "id": { + "attr_type": null + }, + "name": { + "attr_type": null + }, + "type": { + "attr_type": null + }, + "location": { + "attr_type": "location" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultSettingCollection": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "value": { + "default": "none", + "param_type": "keyword_only" + }, + "next_link": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "value": { + "attr_type": "value" + }, + "next_link": { + "attr_type": "next_link" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultSettingCreationInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "properties": { + "default": null, + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "properties": { + "attr_type": "properties" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultSettingCreationInputProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_solution_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vmware_to_azure_provider_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "migration_solution_id": { + "attr_type": "migration_solution_id" + }, + "vmware_to_azure_provider_type": { + "attr_type": "vmware_to_azure_provider_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VaultSettingProperties": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_solution_id": { + "default": "none", + "param_type": "keyword_only" + }, + "vmware_to_azure_provider_type": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "migration_solution_id": { + "attr_type": "migration_solution_id" + }, + "vmware_to_azure_provider_type": { + "attr_type": "vmware_to_azure_provider_type" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VersionDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "version": { + "default": "none", + "param_type": "keyword_only" + }, + "expiry_date": { + "default": "none", + "param_type": "keyword_only" + }, + "status": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "version": { + "attr_type": "version" + }, + "expiry_date": { + "attr_type": "expiry_date" + }, + "status": { + "attr_type": "status" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VirtualMachineTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_task": { + "default": "none", + "param_type": "keyword_only" + }, + "skipped_reason": { + "default": "none", + "param_type": "keyword_only" + }, + "skipped_reason_string": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "skipped_reason": { + "attr_type": "skipped_reason" + }, + "skipped_reason_string": { + "attr_type": "skipped_reason_string" + }, + "job_task": { + "attr_type": "job_task" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmEncryptionType": { + "type": "Enum", + "methods": {}, + "properties": { + "NOT_ENCRYPTED": "NOT_ENCRYPTED", + "ONE_PASS_ENCRYPTED": "ONE_PASS_ENCRYPTED", + "TWO_PASS_ENCRYPTED": "TWO_PASS_ENCRYPTED" + } + }, + "VmNicUpdatesTaskDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vm_id": { + "default": "none", + "param_type": "keyword_only" + }, + "nic_id": { + "default": "none", + "param_type": "keyword_only" + }, + "name": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "vm_id": { + "attr_type": "vm_id" + }, + "nic_id": { + "attr_type": "nic_id" + }, + "name": { + "attr_type": "name" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmReplicationProgressHealth": { + "type": "Enum", + "methods": {}, + "properties": { + "IN_PROGRESS": "IN_PROGRESS", + "NONE": "NONE", + "NO_PROGRESS": "NO_PROGRESS", + "SLOW_PROGRESS": "SLOW_PROGRESS" + } + }, + "VmmDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmToAzureCreateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmToAzureNetworkMappingSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmToAzureUpdateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmToVmmCreateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmToVmmNetworkMappingSettings": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmToVmmUpdateNetworkMappingInput": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmmVirtualMachineDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "source_item_id": { + "default": "none", + "param_type": "keyword_only" + }, + "generation": { + "default": "none", + "param_type": "keyword_only" + }, + "os_details": { + "default": "none", + "param_type": "keyword_only" + }, + "disk_details": { + "default": "none", + "param_type": "keyword_only" + }, + "has_physical_disk": { + "default": "none", + "param_type": "keyword_only" + }, + "has_fibre_channel_adapter": { + "default": "none", + "param_type": "keyword_only" + }, + "has_shared_vhd": { + "default": "none", + "param_type": "keyword_only" + }, + "hyper_v_host_id": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "source_item_id": { + "attr_type": "source_item_id" + }, + "generation": { + "attr_type": "generation" + }, + "os_details": { + "attr_type": "os_details" + }, + "disk_details": { + "attr_type": "disk_details" + }, + "has_physical_disk": { + "attr_type": "has_physical_disk" + }, + "has_fibre_channel_adapter": { + "attr_type": "has_fibre_channel_adapter" + }, + "has_shared_vhd": { + "attr_type": "has_shared_vhd" + }, + "hyper_v_host_id": { + "attr_type": "hyper_v_host_id" + }, + "additional_properties": { + "attr_type": null + } + } + }, + "VmwareCbtPolicyDetails": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_history_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "app_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "crash_consistent_frequency_in_minutes": { + "default": "none", + "param_type": "keyword_only" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "as_dict": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "key_transformer": { + "default": "attribute_transformer", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "deserialize": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "enable_additional_properties_sending": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "from_dict": { + "parameters": { + "data": { + "default": null, + "param_type": "positional_or_keyword" + }, + "key_extractors": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "content_type": { + "default": "none", + "param_type": "positional_or_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "is_xml_model": { + "parameters": {}, + "is_async": false, + "overloads": [] + }, + "serialize": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "keep_readonly": { + "default": "bool", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": { + "instance_type": { + "attr_type": null + }, + "recovery_point_history_in_minutes": { + "attr_type": "recovery_point_history_in_minutes" + }, + "app_consistent_frequency_in_minutes": { + "attr_type": "app_consistent_frequency_in_minutes" + }, + "crash_consistent_frequency_in_minutes": { + "attr_type": "crash_consistent_frequency_in_minutes" + }, + "additional_properties": { + "attr_type": null + } + } + } + }, + "function_nodes": {} + }, + "azure.mgmt.recoveryservicessiterecovery.aio": { + "class_nodes": { + "SiteRecoveryManagementClient": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "credential": { + "default": null, + "param_type": "positional_or_keyword" + }, + "subscription_id": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_group_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "base_url": { + "default": "str", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "close": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + } + }, + "is_async": true, + "overloads": [] + } + }, + "properties": { + "client_side_validation": { + "attr_type": false + }, + "operations": { + "attr_type": "Operations" + }, + "replication_alert_settings": { + "attr_type": "ReplicationAlertSettingsOperations" + }, + "replication_appliances": { + "attr_type": "ReplicationAppliancesOperations" + }, + "replication_eligibility_results": { + "attr_type": "ReplicationEligibilityResultsOperations" + }, + "replication_events": { + "attr_type": "ReplicationEventsOperations" + }, + "replication_fabrics": { + "attr_type": "ReplicationFabricsOperations" + }, + "replication_logical_networks": { + "attr_type": "ReplicationLogicalNetworksOperations" + }, + "replication_networks": { + "attr_type": "ReplicationNetworksOperations" + }, + "replication_network_mappings": { + "attr_type": "ReplicationNetworkMappingsOperations" + }, + "replication_protection_containers": { + "attr_type": "ReplicationProtectionContainersOperations" + }, + "replication_migration_items": { + "attr_type": "ReplicationMigrationItemsOperations" + }, + "migration_recovery_points": { + "attr_type": "MigrationRecoveryPointsOperations" + }, + "replication_protectable_items": { + "attr_type": "ReplicationProtectableItemsOperations" + }, + "replication_protected_items": { + "attr_type": "ReplicationProtectedItemsOperations" + }, + "recovery_points": { + "attr_type": "RecoveryPointsOperations" + }, + "target_compute_sizes": { + "attr_type": "TargetComputeSizesOperations" + }, + "replication_protection_container_mappings": { + "attr_type": "ReplicationProtectionContainerMappingsOperations" + }, + "replication_recovery_services_providers": { + "attr_type": "ReplicationRecoveryServicesProvidersOperations" + }, + "replication_storage_classifications": { + "attr_type": "ReplicationStorageClassificationsOperations" + }, + "replication_storage_classification_mappings": { + "attr_type": "ReplicationStorageClassificationMappingsOperations" + }, + "replicationv_centers": { + "attr_type": "ReplicationvCentersOperations" + }, + "replication_jobs": { + "attr_type": "ReplicationJobsOperations" + }, + "replication_policies": { + "attr_type": "ReplicationPoliciesOperations" + }, + "replication_protection_intents": { + "attr_type": "ReplicationProtectionIntentsOperations" + }, + "replication_recovery_plans": { + "attr_type": "ReplicationRecoveryPlansOperations" + }, + "supported_operating_systems": { + "attr_type": "SupportedOperatingSystemsOperations" + }, + "replication_vault_health": { + "attr_type": "ReplicationVaultHealthOperations" + }, + "replication_vault_setting": { + "attr_type": "ReplicationVaultSettingOperations" + } + } + } + }, + "function_nodes": {} + }, + "azure.mgmt.recoveryservicessiterecovery.aio.operations": { + "class_nodes": { + "MigrationRecoveryPointsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_recovery_point_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list_by_replication_migration_items": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "Operations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "RecoveryPointsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list_by_replication_protected_items": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationAlertSettingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "request": { + "type": "ConfigureAlertRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationAppliancesOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationEligibilityResultsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "virtual_machine_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "virtual_machine_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationEventsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "event_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationFabricsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_check_consistency": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "FabricCreationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_migrate_to_aad": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_reassociate_gateway": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_process_server_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_process_server_request": { + "type": "FailoverProcessServerRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_process_server_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_remove_infra": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_renew_certificate": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate": { + "type": "RenewCertificateInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationJobsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_cancel": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_export": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_query_parameter": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_query_parameter": { + "type": "JobQueryParameter", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_query_parameter": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_restart": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_resume": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_job_params": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_job_params": { + "type": "ResumeJobParams", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_job_params": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationLogicalNetworksOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "logical_network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationMigrationItemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "EnableMigrationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "delete_option": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_migrate": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migrate_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migrate_input": { + "type": "MigrateInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migrate_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_pause_replication": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "pause_replication_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pause_replication_input": { + "type": "PauseReplicationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pause_replication_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_resume_replication": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_replication_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_replication_input": { + "type": "ResumeReplicationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_replication_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_resync": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "ResyncInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_test_migrate": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_input": { + "type": "TestMigrateInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_test_migrate_cleanup": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_cleanup_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_cleanup_input": { + "type": "TestMigrateCleanupInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_cleanup_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdateMigrationItemInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationNetworkMappingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreateNetworkMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdateNetworkMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_networks": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationNetworksOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationPoliciesOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreatePolicyInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdatePolicyInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectableItemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protectable_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectedItemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_add_disks": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "add_disks_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_disks_input": { + "type": "AddDisksInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_disks_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_apply_recovery_point": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "apply_recovery_point_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "apply_recovery_point_input": { + "type": "ApplyRecoveryPointInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "apply_recovery_point_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "EnableProtectionInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_input": { + "type": "DisableProtectionInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_failover_cancel": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_failover_commit": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_planned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "PlannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_remove_disks": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "remove_disks_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "remove_disks_input": { + "type": "RemoveDisksInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "remove_disks_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_repair_replication": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_reprotect": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_input": { + "type": "ReverseReplicationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_resolve_health_errors": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resolve_health_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resolve_health_input": { + "type": "ResolveHealthInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resolve_health_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_switch_provider": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_provider_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_provider_input": { + "type": "SwitchProviderInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_provider_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_test_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "testfailover_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "testfailover_input": { + "type": "TestFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "testfailover_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_test_failover_cleanup": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "cleanup_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "cleanup_input": { + "type": "TestFailoverCleanupInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "cleanup_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_unplanned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "UnplannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_protection_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_protection_input": { + "type": "UpdateReplicationProtectedItemInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_protection_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_update_appliance": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "appliance_update_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "appliance_update_input": { + "type": "UpdateApplianceForReplicationProtectedItemInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "appliance_update_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_update_mobility_service": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_mobility_service_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_mobility_service_request": { + "type": "UpdateMobilityServiceRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_mobility_service_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectionContainerMappingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "CreateProtectionContainerMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "removal_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "removal_input": { + "type": "RemoveProtectionContainerMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "removal_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_input": { + "type": "UpdateProtectionContainerMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectionContainersOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "CreateProtectionContainerInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_discover_protectable_item": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "discover_protectable_item_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "discover_protectable_item_request": { + "type": "DiscoverProtectableItemRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "discover_protectable_item_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_switch_protection": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_input": { + "type": "SwitchProtectionInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectionIntentsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreateProtectionIntentInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationRecoveryPlansOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreateRecoveryPlanInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_failover_cancel": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_failover_commit": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_planned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanPlannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_reprotect": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_test_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanTestFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_test_failover_cleanup": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanTestFailoverCleanupInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_unplanned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanUnplannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdateRecoveryPlanInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationRecoveryServicesProvidersOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "add_provider_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_provider_input": { + "type": "AddRecoveryServicesProviderInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_provider_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_refresh_provider": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationStorageClassificationMappingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "pairing_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pairing_input": { + "type": "StorageClassificationMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pairing_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_storage_classifications": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationStorageClassificationsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationVaultHealthOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_refresh": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationVaultSettingOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "VaultSettingCreationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationvCentersOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "add_v_center_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_v_center_request": { + "type": "AddVCenterRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_v_center_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_v_center_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_v_center_request": { + "type": "UpdateVCenterRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_v_center_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": true, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "SupportedOperatingSystemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "instance_type": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": true, + "overloads": [] + } + }, + "properties": {} + }, + "TargetComputeSizesOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protected_items": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + } + }, + "function_nodes": {} + }, + "azure.mgmt.recoveryservicessiterecovery.operations": { + "class_nodes": { + "MigrationRecoveryPointsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_recovery_point_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_migration_items": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "Operations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "RecoveryPointsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_point_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protected_items": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationAlertSettingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "request": { + "type": "ConfigureAlertRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "alert_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationAppliancesOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationEligibilityResultsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "virtual_machine_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "virtual_machine_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationEventsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "event_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationFabricsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_check_consistency": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "FabricCreationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_migrate_to_aad": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_reassociate_gateway": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_process_server_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_process_server_request": { + "type": "FailoverProcessServerRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_process_server_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_remove_infra": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resource_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_renew_certificate": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate": { + "type": "RenewCertificateInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "renew_certificate": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationJobsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_cancel": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_export": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_query_parameter": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_query_parameter": { + "type": "JobQueryParameter", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_query_parameter": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_restart": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_resume": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_job_params": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_job_params": { + "type": "ResumeJobParams", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_job_params": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "job_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationLogicalNetworksOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "logical_network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationMigrationItemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "EnableMigrationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "delete_option": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_migrate": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migrate_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migrate_input": { + "type": "MigrateInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migrate_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_pause_replication": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "pause_replication_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pause_replication_input": { + "type": "PauseReplicationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pause_replication_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_resume_replication": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_replication_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_replication_input": { + "type": "ResumeReplicationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resume_replication_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_resync": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "ResyncInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_test_migrate": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_input": { + "type": "TestMigrateInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_test_migrate_cleanup": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_cleanup_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_cleanup_input": { + "type": "TestMigrateCleanupInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "test_migrate_cleanup_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdateMigrationItemInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "migration_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationNetworkMappingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreateNetworkMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdateNetworkMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_networks": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationNetworksOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "network_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationPoliciesOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreatePolicyInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdatePolicyInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "policy_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectableItemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protectable_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectedItemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_add_disks": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "add_disks_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_disks_input": { + "type": "AddDisksInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_disks_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_apply_recovery_point": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "apply_recovery_point_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "apply_recovery_point_input": { + "type": "ApplyRecoveryPointInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "apply_recovery_point_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "EnableProtectionInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_input": { + "type": "DisableProtectionInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "disable_protection_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_failover_cancel": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_failover_commit": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_planned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "PlannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_remove_disks": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "remove_disks_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "remove_disks_input": { + "type": "RemoveDisksInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "remove_disks_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_repair_replication": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_reprotect": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_input": { + "type": "ReverseReplicationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "reprotect_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_resolve_health_errors": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "resolve_health_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resolve_health_input": { + "type": "ResolveHealthInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "resolve_health_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_switch_provider": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_provider_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_provider_input": { + "type": "SwitchProviderInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_provider_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_test_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "testfailover_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "testfailover_input": { + "type": "TestFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "testfailover_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_test_failover_cleanup": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "cleanup_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "cleanup_input": { + "type": "TestFailoverCleanupInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "cleanup_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_unplanned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "UnplannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "failover_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_protection_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_protection_input": { + "type": "UpdateReplicationProtectedItemInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_protection_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_update_appliance": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "appliance_update_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "appliance_update_input": { + "type": "UpdateApplianceForReplicationProtectedItemInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "appliance_update_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_update_mobility_service": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_mobility_service_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_mobility_service_request": { + "type": "UpdateMobilityServiceRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_mobility_service_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "filter": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectionContainerMappingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "CreateProtectionContainerMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "removal_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "removal_input": { + "type": "RemoveProtectionContainerMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "removal_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_input": { + "type": "UpdateProtectionContainerMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protection_containers": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectionContainersOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "CreateProtectionContainerInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "creation_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_discover_protectable_item": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "discover_protectable_item_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "discover_protectable_item_request": { + "type": "DiscoverProtectableItemRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "discover_protectable_item_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_switch_protection": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_input": { + "type": "SwitchProtectionInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "switch_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationProtectionIntentsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreateProtectionIntentInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "intent_object_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "skip_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "take_token": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationRecoveryPlansOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "CreateRecoveryPlanInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_failover_cancel": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_failover_commit": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_planned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanPlannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_reprotect": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_test_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanTestFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_test_failover_cleanup": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanTestFailoverCleanupInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_unplanned_failover": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "RecoveryPlanUnplannedFailoverInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "UpdateRecoveryPlanInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "recovery_plan_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationRecoveryServicesProvidersOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "add_provider_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_provider_input": { + "type": "AddRecoveryServicesProviderInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_provider_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_purge": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_refresh_provider": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "provider_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationStorageClassificationMappingsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "pairing_input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pairing_input": { + "type": "StorageClassificationMappingInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "pairing_input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_mapping_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_storage_classifications": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationStorageClassificationsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "storage_classification_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationVaultHealthOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_refresh": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationVaultSettingOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "VaultSettingCreationInput", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "input": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vault_setting_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "ReplicationvCentersOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_create": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "add_v_center_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_v_center_request": { + "type": "AddVCenterRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "add_v_center_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "begin_delete": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "begin_update": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "update_v_center_request": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [ + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_v_center_request": { + "type": "UpdateVCenterRequest", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + }, + { + "parameters": { + "self": { + "type": null, + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "type": "str", + "default": null, + "param_type": "positional_or_keyword" + }, + "update_v_center_request": { + "type": "IO", + "default": null, + "param_type": "positional_or_keyword" + }, + "content_type": { + "type": "str", + "default": "application/json", + "param_type": "keyword_only" + } + }, + "is_async": false, + "return_type": null + } + ] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "vcenter_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_fabrics": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "SupportedOperatingSystemsOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "get": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "instance_type": { + "default": "none", + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + }, + "TargetComputeSizesOperations": { + "type": null, + "methods": { + "__init__": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "args": { + "default": null, + "param_type": "var_positional" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + }, + "list_by_replication_protected_items": { + "parameters": { + "self": { + "default": null, + "param_type": "positional_or_keyword" + }, + "fabric_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "protection_container_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "replicated_protected_item_name": { + "default": null, + "param_type": "positional_or_keyword" + }, + "kwargs": { + "default": null, + "param_type": "var_keyword" + } + }, + "is_async": false, + "overloads": [] + } + }, + "properties": {} + } + }, + "function_nodes": {} + } +} \ No newline at end of file