diff --git a/sdk/network/azure-mgmt-privatedns/CHANGELOG.md b/sdk/network/azure-mgmt-privatedns/CHANGELOG.md index 99a5668c2bd7..882667569d7b 100644 --- a/sdk/network/azure-mgmt-privatedns/CHANGELOG.md +++ b/sdk/network/azure-mgmt-privatedns/CHANGELOG.md @@ -1,5 +1,35 @@ # Release History +## 2.0.0 (2025-04-29) + +### Features Added + + - Model `PrivateZone` added property `system_data` + - Model `ProxyResource` added property `system_data` + - Model `RecordSet` added property `system_data` + - Model `Resource` added property `system_data` + - Model `TrackedResource` added property `system_data` + - Model `VirtualNetworkLink` added property `system_data` + - Added enum `CreatedByType` + - Added model `ErrorAdditionalInfo` + - Added model `ErrorDetail` + - Added model `ErrorResponse` + - Added model `SystemData` + +### Breaking Changes + + - Method `PrivateZone.__init__` removed default value `None` from its parameter `location` + - Method `PrivateZoneListResult.__init__` removed default value `None` from its parameter `value` + - Method `RecordSetListResult.__init__` removed default value `None` from its parameter `value` + - Method `TrackedResource.__init__` removed default value `None` from its parameter `location` + - Method `VirtualNetworkLink.__init__` removed default value `None` from its parameter `location` + - Method `VirtualNetworkLinkListResult.__init__` removed default value `None` from its parameter `value` + - Deleted or renamed model `CloudErrorBody` + - Method `RecordSetsOperations.update` re-ordered its parameters from `['self', 'resource_group_name', 'private_zone_name', 'record_type', 'relative_record_set_name', 'parameters', 'if_match', 'kwargs']` to `['self', 'resource_group_name', 'private_zone_name', 'relative_record_set_name', 'record_type', 'parameters', 'if_match', 'kwargs']` + - Method `RecordSetsOperations.get` re-ordered its parameters from `['self', 'resource_group_name', 'private_zone_name', 'record_type', 'relative_record_set_name', 'kwargs']` to `['self', 'resource_group_name', 'private_zone_name', 'relative_record_set_name', 'record_type', 'kwargs']` + - Method `RecordSetsOperations.create_or_update` re-ordered its parameters from `['self', 'resource_group_name', 'private_zone_name', 'record_type', 'relative_record_set_name', 'parameters', 'if_match', 'if_none_match', 'kwargs']` to `['self', 'resource_group_name', 'private_zone_name', 'relative_record_set_name', 'record_type', 'parameters', 'if_match', 'if_none_match', 'kwargs']` + - Method `RecordSetsOperations.delete` re-ordered its parameters from `['self', 'resource_group_name', 'private_zone_name', 'record_type', 'relative_record_set_name', 'if_match', 'kwargs']` to `['self', 'resource_group_name', 'private_zone_name', 'relative_record_set_name', 'record_type', 'if_match', 'kwargs']` + ## 1.2.0 (2024-09-23) ### Features Added diff --git a/sdk/network/azure-mgmt-privatedns/README.md b/sdk/network/azure-mgmt-privatedns/README.md index 63cb786c12f0..60354b200870 100644 --- a/sdk/network/azure-mgmt-privatedns/README.md +++ b/sdk/network/azure-mgmt-privatedns/README.md @@ -1,7 +1,7 @@ # Microsoft Azure SDK for Python This is the Microsoft Azure DNS Private Zones 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/network/azure-mgmt-privatedns/_meta.json b/sdk/network/azure-mgmt-privatedns/_meta.json index beead2e6be6f..a648a656d51f 100644 --- a/sdk/network/azure-mgmt-privatedns/_meta.json +++ b/sdk/network/azure-mgmt-privatedns/_meta.json @@ -1,11 +1,11 @@ { - "commit": "e4991356eec55985c1af47096c9c2091126a7d0f", + "commit": "6c577193eb0f5e6e80b974ac0dcb028462823e10", "repository_url": "https://github.com/Azure/azure-rest-api-specs", "autorest": "3.10.2", "use": [ - "@autorest/python@6.19.0", + "@autorest/python@6.34.1", "@autorest/modelerfour@4.27.0" ], - "autorest_command": "autorest specification/privatedns/resource-manager/readme.md --generate-sample=True --generate-test=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.19.0 --use=@autorest/modelerfour@4.27.0 --version=3.10.2 --version-tolerant=False", + "autorest_command": "autorest specification/privatedns/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.34.1 --use=@autorest/modelerfour@4.27.0 --version=3.10.2 --version-tolerant=False", "readme": "specification/privatedns/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/__init__.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/__init__.py index 59326485c621..67da3e6cbbf8 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/__init__.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/__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 ._private_dns_management_client import PrivateDnsManagementClient +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._private_dns_management_client import PrivateDnsManagementClient # 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__ = [ "PrivateDnsManagementClient", ] -__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/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_configuration.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_configuration.py index 58b31da2da52..256a0fee613f 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_configuration.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_configuration.py @@ -14,11 +14,10 @@ from ._version import VERSION if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials import TokenCredential -class PrivateDnsManagementClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long +class PrivateDnsManagementClientConfiguration: # pylint: disable=too-many-instance-attributes """Configuration for PrivateDnsManagementClient. Note that all parameters used to create this instance are saved as instance @@ -26,8 +25,7 @@ class PrivateDnsManagementClientConfiguration: # pylint: disable=too-many-insta :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: Gets subscription credentials which uniquely identify Microsoft Azure - subscription. The subscription ID forms part of the URI for every service call. Required. + :param subscription_id: The ID of the target subscription. Required. :type subscription_id: str :keyword api_version: Api Version. Default value is "2024-06-01". Note that overriding this default value may result in unsupported behavior. diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_private_dns_management_client.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_private_dns_management_client.py index 63777bdf8e55..03c8483b036f 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_private_dns_management_client.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_private_dns_management_client.py @@ -7,39 +7,39 @@ # -------------------------------------------------------------------------- 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 PrivateDnsManagementClientConfiguration -from ._serialization import Deserializer, Serializer +from ._utils.serialization import Deserializer, Serializer from .operations import PrivateZonesOperations, RecordSetsOperations, VirtualNetworkLinksOperations if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials import TokenCredential -class PrivateDnsManagementClient: # pylint: disable=client-accepts-api-version-keyword +class PrivateDnsManagementClient: """The Private DNS Management Client. :ivar private_zones: PrivateZonesOperations operations :vartype private_zones: azure.mgmt.privatedns.operations.PrivateZonesOperations - :ivar virtual_network_links: VirtualNetworkLinksOperations operations - :vartype virtual_network_links: azure.mgmt.privatedns.operations.VirtualNetworkLinksOperations :ivar record_sets: RecordSetsOperations operations :vartype record_sets: azure.mgmt.privatedns.operations.RecordSetsOperations + :ivar virtual_network_links: VirtualNetworkLinksOperations operations + :vartype virtual_network_links: azure.mgmt.privatedns.operations.VirtualNetworkLinksOperations :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: Gets subscription credentials which uniquely identify Microsoft Azure - subscription. The subscription ID forms part of the URI for every service call. Required. + :param subscription_id: The ID of the target subscription. Required. :type subscription_id: 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 "2024-06-01". Note that overriding this default value may result in unsupported behavior. @@ -49,15 +49,17 @@ class PrivateDnsManagementClient: # pylint: disable=client-accepts-api-version- """ def __init__( - self, - credential: "TokenCredential", - subscription_id: str, - base_url: str = "https://management.azure.com", - **kwargs: Any + self, credential: "TokenCredential", subscription_id: str, 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 = PrivateDnsManagementClientConfiguration( - credential=credential, subscription_id=subscription_id, **kwargs + credential=credential, subscription_id=subscription_id, credential_scopes=credential_scopes, **kwargs ) + _policies = kwargs.pop("policies", None) if _policies is None: _policies = [ @@ -76,17 +78,17 @@ def __init__( policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None, self._config.http_logging_policy, ] - self._client: ARMPipelineClient = ARMPipelineClient(base_url=base_url, policies=_policies, **kwargs) + 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) self._deserialize = Deserializer(client_models) self._serialize.client_side_validation = False self.private_zones = PrivateZonesOperations(self._client, self._config, self._serialize, self._deserialize) + self.record_sets = RecordSetsOperations(self._client, self._config, self._serialize, self._deserialize) self.virtual_network_links = VirtualNetworkLinksOperations( self._client, self._config, self._serialize, self._deserialize ) - self.record_sets = RecordSetsOperations(self._client, self._config, self._serialize, self._deserialize) def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse: """Runs the network request through the client's chained policies. diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_utils/__init__.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_utils/__init__.py new file mode 100644 index 000000000000..0af9b28f6607 --- /dev/null +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_utils/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------- +# 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. +# -------------------------------------------------------------------------- diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_serialization.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_utils/serialization.py similarity index 83% rename from sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_serialization.py rename to sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_utils/serialization.py index 8139854b97bb..f5187701d7be 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_serialization.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_utils/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 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: @@ -155,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 @@ -179,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: Optional[Dict[str, Any]] = {} - for k in kwargs: + 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): @@ -300,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: @@ -326,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: @@ -346,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) # type: ignore + return serializer._serialize( # type: ignore # pylint: disable=protected-access + self, keep_readonly=keep_readonly, **kwargs + ) def as_dict( self, @@ -380,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) # type: ignore + 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): @@ -395,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) # 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 @@ -426,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 @@ -448,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: @@ -501,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"} @@ -540,7 +512,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes: Optional[Mapping[str, type]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None: self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -560,13 +532,16 @@ def __init__(self, classes: Optional[Mapping[str, type]] = None): 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) @@ -592,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"] == "": @@ -633,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 @@ -664,17 +642,17 @@ 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 SerializationError(msg) from err - else: - return serialized + 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 @@ -703,7 +681,7 @@ 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 SerializationError("Unable to build a model: " + str(err)) from err @@ -712,11 +690,13 @@ def body(self, 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) @@ -728,21 +708,20 @@ def url(self, name, data, data_type, **kwargs): 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, list - :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 query parameter """ try: # Treat the list aside, since we don't want to encode the div separator @@ -759,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]"]: @@ -780,21 +760,20 @@ 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") @@ -805,7 +784,7 @@ def serialize_data(self, data, data_type, **kwargs): 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 @@ -821,11 +800,10 @@ def serialize_data(self, data, data_type, **kwargs): except (ValueError, TypeError) as err: msg = "Unable to serialize value: {!r} as type: {!r}." raise SerializationError(msg.format(data, data_type)) from err - else: - return self._serialize(data, **kwargs) + 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 @@ -841,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 @@ -871,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. @@ -882,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.") @@ -945,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 = {} @@ -971,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 @@ -979,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 @@ -1003,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: @@ -1034,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) @@ -1091,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) @@ -1105,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], @@ -1141,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) @@ -1172,13 +1159,14 @@ def serialize_iso(attr, **kwargs): 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 @@ -1186,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 @@ -1211,7 +1199,9 @@ def rest_key_extractor(attr, attr_desc, data): 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 @@ -1232,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) @@ -1279,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 @@ -1331,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: @@ -1354,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. @@ -1363,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]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None: self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1401,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) @@ -1440,13 +1443,13 @@ def _deserialize(self, target_obj, data): 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 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"... @@ -1476,9 +1479,8 @@ def _deserialize(self, target_obj, data): except (AttributeError, TypeError, KeyError) as err: msg = "Unable to deserialize to object: " + class_name # type: ignore raise DeserializationError(msg) from err - else: - additional_properties = self._build_additional_properties(attributes, data) - return self._instantiate_model(response, d_attrs, additional_properties) + 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: @@ -1505,6 +1507,8 @@ 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 @@ -1516,7 +1520,7 @@ def _classify_target(self, target, data): return target, target try: - target = target._classify(data, self.dependencies) # type: ignore + 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 @@ -1531,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 ) @@ -1552,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", {}) @@ -1579,24 +1587,35 @@ def _unpack_content(raw_data, content_type=None): 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(): @@ -1605,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 @@ -1627,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) @@ -1647,14 +1671,14 @@ def deserialize_data(self, data, data_type): msg = "Unable to deserialize response data." msg += " Data: {}, {}".format(data, data_type) raise DeserializationError(msg) from err - else: - return self._deserialize(obj_type, data) + 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: @@ -1671,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): @@ -1681,13 +1706,14 @@ 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 @@ -1720,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 @@ -1732,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 @@ -1743,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, str): + 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): @@ -1768,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, @@ -1781,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): @@ -1794,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: @@ -1804,9 +1830,9 @@ def deserialize_enum(data, enum_obj): # Workaround. We might consider remove it in the future. 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: @@ -1822,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 @@ -1834,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 @@ -1849,8 +1877,9 @@ 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 @@ -1865,8 +1894,9 @@ 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 @@ -1877,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 @@ -1887,16 +1918,16 @@ def deserialize_duration(attr): except (ValueError, OverflowError, AttributeError) as err: msg = "Cannot deserialize duration object." raise DeserializationError(msg) from err - else: - return duration + 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 @@ -1910,8 +1941,9 @@ 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 @@ -1924,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 DeserializationError(msg) from err - else: - return date_obj + 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 @@ -1976,8 +2009,7 @@ def deserialize_iso(attr): except (ValueError, OverflowError, AttributeError) as err: msg = "Cannot deserialize datetime object." raise DeserializationError(msg) from err - else: - return date_obj + return date_obj @staticmethod def deserialize_unix(attr): @@ -1985,8 +2017,9 @@ 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 @@ -1996,5 +2029,4 @@ def deserialize_unix(attr): except ValueError as err: msg = "Cannot deserialize to unix datetime object." raise DeserializationError(msg) from err - else: - return date_obj + return date_obj diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_version.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_version.py index dbf4c577231c..48944bf3938a 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_version.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.2.0" +VERSION = "2.0.0" diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/__init__.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/__init__.py index 6fb792f74928..1edd7082e22c 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/__init__.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/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 ._private_dns_management_client import PrivateDnsManagementClient +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._private_dns_management_client import PrivateDnsManagementClient # 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__ = [ "PrivateDnsManagementClient", ] -__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/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_configuration.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_configuration.py index c28836bf43dd..0e8c9fd384d5 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_configuration.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_configuration.py @@ -14,11 +14,10 @@ from .._version import VERSION if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials_async import AsyncTokenCredential -class PrivateDnsManagementClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long +class PrivateDnsManagementClientConfiguration: # pylint: disable=too-many-instance-attributes """Configuration for PrivateDnsManagementClient. Note that all parameters used to create this instance are saved as instance @@ -26,8 +25,7 @@ class PrivateDnsManagementClientConfiguration: # pylint: disable=too-many-insta :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: Gets subscription credentials which uniquely identify Microsoft Azure - subscription. The subscription ID forms part of the URI for every service call. Required. + :param subscription_id: The ID of the target subscription. Required. :type subscription_id: str :keyword api_version: Api Version. Default value is "2024-06-01". Note that overriding this default value may result in unsupported behavior. diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_private_dns_management_client.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_private_dns_management_client.py index 48fd6487b1c1..a9e295304768 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_private_dns_management_client.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/_private_dns_management_client.py @@ -7,40 +7,40 @@ # -------------------------------------------------------------------------- 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 .._utils.serialization import Deserializer, Serializer from ._configuration import PrivateDnsManagementClientConfiguration from .operations import PrivateZonesOperations, RecordSetsOperations, VirtualNetworkLinksOperations if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials_async import AsyncTokenCredential -class PrivateDnsManagementClient: # pylint: disable=client-accepts-api-version-keyword +class PrivateDnsManagementClient: """The Private DNS Management Client. :ivar private_zones: PrivateZonesOperations operations :vartype private_zones: azure.mgmt.privatedns.aio.operations.PrivateZonesOperations + :ivar record_sets: RecordSetsOperations operations + :vartype record_sets: azure.mgmt.privatedns.aio.operations.RecordSetsOperations :ivar virtual_network_links: VirtualNetworkLinksOperations operations :vartype virtual_network_links: azure.mgmt.privatedns.aio.operations.VirtualNetworkLinksOperations - :ivar record_sets: RecordSetsOperations operations - :vartype record_sets: azure.mgmt.privatedns.aio.operations.RecordSetsOperations :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: Gets subscription credentials which uniquely identify Microsoft Azure - subscription. The subscription ID forms part of the URI for every service call. Required. + :param subscription_id: The ID of the target subscription. Required. :type subscription_id: 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 "2024-06-01". Note that overriding this default value may result in unsupported behavior. @@ -50,15 +50,17 @@ class PrivateDnsManagementClient: # pylint: disable=client-accepts-api-version- """ def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - base_url: str = "https://management.azure.com", - **kwargs: Any + self, credential: "AsyncTokenCredential", subscription_id: str, 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 = PrivateDnsManagementClientConfiguration( - credential=credential, subscription_id=subscription_id, **kwargs + credential=credential, subscription_id=subscription_id, credential_scopes=credential_scopes, **kwargs ) + _policies = kwargs.pop("policies", None) if _policies is None: _policies = [ @@ -77,17 +79,19 @@ def __init__( policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None, self._config.http_logging_policy, ] - self._client: AsyncARMPipelineClient = AsyncARMPipelineClient(base_url=base_url, policies=_policies, **kwargs) + 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) self._deserialize = Deserializer(client_models) self._serialize.client_side_validation = False self.private_zones = PrivateZonesOperations(self._client, self._config, self._serialize, self._deserialize) + self.record_sets = RecordSetsOperations(self._client, self._config, self._serialize, self._deserialize) self.virtual_network_links = VirtualNetworkLinksOperations( self._client, self._config, self._serialize, self._deserialize ) - self.record_sets = RecordSetsOperations(self._client, self._config, self._serialize, self._deserialize) def _send_request( self, request: HttpRequest, *, stream: bool = False, **kwargs: Any diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/__init__.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/__init__.py index 0dc4f10b72ae..900ef0f943b6 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/__init__.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/__init__.py @@ -5,19 +5,25 @@ # 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 ._private_zones_operations import PrivateZonesOperations -from ._virtual_network_links_operations import VirtualNetworkLinksOperations -from ._record_sets_operations import RecordSetsOperations +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._private_zones_operations import PrivateZonesOperations # type: ignore +from ._record_sets_operations import RecordSetsOperations # type: ignore +from ._virtual_network_links_operations import VirtualNetworkLinksOperations # 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__ = [ "PrivateZonesOperations", - "VirtualNetworkLinksOperations", "RecordSetsOperations", + "VirtualNetworkLinksOperations", ] -__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/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_private_zones_operations.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_private_zones_operations.py index 4f62c69403fb..1f747a19a0d6 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_private_zones_operations.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_private_zones_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,11 +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 -import sys -from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, Type, 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, @@ -32,6 +32,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models +from ..._utils.serialization import Deserializer, Serializer from ...operations._private_zones_operations import ( build_create_or_update_request, build_delete_request, @@ -40,11 +41,8 @@ build_list_request, build_update_request, ) +from .._configuration import PrivateDnsManagementClientConfiguration -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -63,10 +61,234 @@ class PrivateZonesOperations: 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: PrivateDnsManagementClientConfiguration = ( + 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, top: Optional[int] = None, **kwargs: Any) -> AsyncIterable["_models.PrivateZone"]: + """Lists the Private DNS zones in all resource groups in a subscription. + + :param top: The maximum number of Private DNS zones to return. If not specified, returns up to + 100 zones. Default value is None. + :type top: int + :return: An iterator like instance of either PrivateZone or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.PrivateZone] + :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.PrivateZoneListResult] = 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( + subscription_id=self._config.subscription_id, + top=top, + 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("PrivateZoneListResult", 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 + def list_by_resource_group( + self, resource_group_name: str, top: Optional[int] = None, **kwargs: Any + ) -> AsyncIterable["_models.PrivateZone"]: + """Lists the Private DNS zones within a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param top: The maximum number of record sets to return. If not specified, returns up to 100 + record sets. Default value is None. + :type top: int + :return: An iterator like instance of either PrivateZone or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.PrivateZone] + :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.PrivateZoneListResult] = 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_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + top=top, + 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("PrivateZoneListResult", 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_group_name: str, private_zone_name: str, **kwargs: Any) -> _models.PrivateZone: + """Gets a Private DNS zone. Retrieves the zone properties, but not the virtual networks links or + the record sets within the zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :return: PrivateZone or the result of cls(response) + :rtype: ~azure.mgmt.privatedns.models.PrivateZone + :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.PrivateZone] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_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("PrivateZone", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore async def _create_or_update_initial( self, @@ -77,7 +299,7 @@ async def _create_or_update_initial( if_none_match: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -129,12 +351,22 @@ async def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 201: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -153,7 +385,8 @@ async def begin_create_or_update( """Creates or updates a Private DNS zone. Does not modify Links to virtual networks or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -191,7 +424,8 @@ async def begin_create_or_update( """Creates or updates a Private DNS zone. Does not modify Links to virtual networks or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -227,7 +461,8 @@ async def begin_create_or_update( """Creates or updates a Private DNS zone. Does not modify Links to virtual networks or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -280,7 +515,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + 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: @@ -304,7 +541,7 @@ async def _update_initial( if_match: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -355,12 +592,18 @@ async def _update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -378,7 +621,8 @@ async def begin_update( """Updates a Private DNS zone. Does not modify virtual network links or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -412,7 +656,8 @@ async def begin_update( """Updates a Private DNS zone. Does not modify virtual network links or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -444,7 +689,8 @@ async def begin_update( """Updates a Private DNS zone. Does not modify virtual network links or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -493,7 +739,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + 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: @@ -512,7 +760,7 @@ def get_long_running_output(pipeline_response): async def _delete_initial( self, resource_group_name: str, private_zone_name: str, if_match: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -551,12 +799,18 @@ async def _delete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -568,7 +822,8 @@ async def begin_delete( operation cannot be undone. Private DNS zone cannot be deleted unless all virtual network links to it are removed. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -608,7 +863,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- return cls(pipeline_response, None, {}) # type: ignore if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + 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: @@ -621,220 +878,3 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- deserialization_callback=get_long_running_output, ) return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - @distributed_trace_async - async def get(self, resource_group_name: str, private_zone_name: str, **kwargs: Any) -> _models.PrivateZone: - """Gets a Private DNS zone. Retrieves the zone properties, but not the virtual networks links or - the record sets within the zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :return: PrivateZone or the result of cls(response) - :rtype: ~azure.mgmt.privatedns.models.PrivateZone - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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.PrivateZone] = kwargs.pop("cls", None) - - _request = build_get_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - deserialized = self._deserialize("PrivateZone", pipeline_response.http_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - @distributed_trace - def list(self, top: Optional[int] = None, **kwargs: Any) -> AsyncIterable["_models.PrivateZone"]: - """Lists the Private DNS zones in all resource groups in a subscription. - - :param top: The maximum number of Private DNS zones to return. If not specified, returns up to - 100 zones. Default value is None. - :type top: int - :return: An iterator like instance of either PrivateZone or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.PrivateZone] - :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.PrivateZoneListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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( - subscription_id=self._config.subscription_id, - top=top, - 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("PrivateZoneListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, top: Optional[int] = None, **kwargs: Any - ) -> AsyncIterable["_models.PrivateZone"]: - """Lists the Private DNS zones within a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param top: The maximum number of record sets to return. If not specified, returns up to 100 - record sets. Default value is None. - :type top: int - :return: An iterator like instance of either PrivateZone or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.PrivateZone] - :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.PrivateZoneListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - top=top, - 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("PrivateZoneListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_record_sets_operations.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_record_sets_operations.py index fa8ec4dd3db9..01379aa340ec 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_record_sets_operations.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_record_sets_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,11 +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 -import sys -from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, Type, TypeVar, Union, overload +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, @@ -28,6 +28,7 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from ... import models as _models +from ..._utils.serialization import Deserializer, Serializer from ...operations._record_sets_operations import ( build_create_or_update_request, build_delete_request, @@ -36,11 +37,8 @@ build_list_request, build_update_request, ) +from .._configuration import PrivateDnsManagementClientConfiguration -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -59,18 +57,196 @@ class RecordSetsOperations: 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: PrivateDnsManagementClientConfiguration = ( + 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_type( + self, + resource_group_name: str, + private_zone_name: str, + record_type: Union[str, _models.RecordType], + top: Optional[int] = None, + recordsetnamesuffix: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.RecordSet"]: + """Lists the record sets of a specified type in a Private DNS zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param record_type: The type of record sets to enumerate. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType + :param top: The maximum number of record sets to return. If not specified, returns up to 100 + record sets. Default value is None. + :type top: int + :param recordsetnamesuffix: The suffix label of the record set name to be used to filter the + record set enumeration. If this parameter is specified, the returned enumeration will only + contain records that end with ".\\ :code:``". Default value is None. + :type recordsetnamesuffix: str + :return: An iterator like instance of either RecordSet or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.RecordSet] + :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.RecordSetListResult] = 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_type_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_name, + record_type=record_type, + subscription_id=self._config.subscription_id, + top=top, + recordsetnamesuffix=recordsetnamesuffix, + 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("RecordSetListResult", 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_group_name: str, + private_zone_name: str, + relative_record_set_name: str, + record_type: Union[str, _models.RecordType], + **kwargs: Any + ) -> _models.RecordSet: + """Gets a record set. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType + :return: RecordSet or the result of cls(response) + :rtype: ~azure.mgmt.privatedns.models.RecordSet + :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.RecordSet] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_name, + relative_record_set_name=relative_record_set_name, + record_type=record_type, + 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("RecordSet", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore @overload async def create_or_update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: _models.RecordSet, if_match: Optional[str] = None, if_none_match: Optional[str] = None, @@ -80,18 +256,19 @@ async def create_or_update( ) -> _models.RecordSet: """Creates or updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param parameters: Parameters supplied to the CreateOrUpdate operation. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -114,8 +291,8 @@ async def create_or_update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: IO[bytes], if_match: Optional[str] = None, if_none_match: Optional[str] = None, @@ -125,18 +302,19 @@ async def create_or_update( ) -> _models.RecordSet: """Creates or updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param parameters: Parameters supplied to the CreateOrUpdate operation. Required. :type parameters: IO[bytes] :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -159,8 +337,8 @@ async def create_or_update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: Union[_models.RecordSet, IO[bytes]], if_match: Optional[str] = None, if_none_match: Optional[str] = None, @@ -168,18 +346,19 @@ async def create_or_update( ) -> _models.RecordSet: """Creates or updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param parameters: Parameters supplied to the CreateOrUpdate operation. Is either a RecordSet type or a IO[bytes] type. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet or IO[bytes] @@ -194,7 +373,7 @@ async def create_or_update( :rtype: ~azure.mgmt.privatedns.models.RecordSet :raises ~azure.core.exceptions.HttpResponseError: """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -220,8 +399,8 @@ async def create_or_update( _request = build_create_or_update_request( resource_group_name=resource_group_name, private_zone_name=private_zone_name, - record_type=record_type, relative_record_set_name=relative_record_set_name, + record_type=record_type, subscription_id=self._config.subscription_id, if_match=if_match, if_none_match=if_none_match, @@ -243,7 +422,8 @@ async def create_or_update( if response.status_code not in [200, 201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize("RecordSet", pipeline_response.http_response) @@ -257,8 +437,8 @@ async def update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: _models.RecordSet, if_match: Optional[str] = None, *, @@ -267,17 +447,18 @@ async def update( ) -> _models.RecordSet: """Updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param relative_record_set_name: The name of the record set, relative to the name of the zone. Required. :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param parameters: Parameters supplied to the Update operation. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -297,8 +478,8 @@ async def update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: IO[bytes], if_match: Optional[str] = None, *, @@ -307,17 +488,18 @@ async def update( ) -> _models.RecordSet: """Updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param relative_record_set_name: The name of the record set, relative to the name of the zone. Required. :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param parameters: Parameters supplied to the Update operation. Required. :type parameters: IO[bytes] :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -337,25 +519,26 @@ async def update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: Union[_models.RecordSet, IO[bytes]], if_match: Optional[str] = None, **kwargs: Any ) -> _models.RecordSet: """Updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param relative_record_set_name: The name of the record set, relative to the name of the zone. Required. :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param parameters: Parameters supplied to the Update operation. Is either a RecordSet type or a IO[bytes] type. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet or IO[bytes] @@ -367,7 +550,7 @@ async def update( :rtype: ~azure.mgmt.privatedns.models.RecordSet :raises ~azure.core.exceptions.HttpResponseError: """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -393,8 +576,8 @@ async def update( _request = build_update_request( resource_group_name=resource_group_name, private_zone_name=private_zone_name, - record_type=record_type, relative_record_set_name=relative_record_set_name, + record_type=record_type, subscription_id=self._config.subscription_id, if_match=if_match, api_version=api_version, @@ -415,7 +598,8 @@ async def update( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize("RecordSet", pipeline_response.http_response) @@ -425,29 +609,30 @@ async def update( return deserialized # type: ignore @distributed_trace_async - async def delete( # pylint: disable=inconsistent-return-statements + async def delete( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], if_match: Optional[str] = None, **kwargs: Any ) -> None: """Deletes a record set from a Private DNS zone. This operation cannot be undone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA cannot be deleted (they are deleted when the Private DNS zone is deleted). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param if_match: The ETag of the record set. Omit this value to always delete the current record set. Specify the last-seen ETag value to prevent accidentally deleting any concurrent changes. Default value is None. @@ -456,7 +641,7 @@ async def delete( # pylint: disable=inconsistent-return-statements :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -473,8 +658,8 @@ async def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( resource_group_name=resource_group_name, private_zone_name=private_zone_name, - record_type=record_type, relative_record_set_name=relative_record_set_name, + record_type=record_type, subscription_id=self._config.subscription_id, if_match=if_match, api_version=api_version, @@ -492,183 +677,12 @@ async def delete( # pylint: disable=inconsistent-return-statements if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: return cls(pipeline_response, None, {}) # type: ignore - @distributed_trace_async - async def get( - self, - resource_group_name: str, - private_zone_name: str, - record_type: Union[str, _models.RecordType], - relative_record_set_name: str, - **kwargs: Any - ) -> _models.RecordSet: - """Gets a record set. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str - :return: RecordSet or the result of cls(response) - :rtype: ~azure.mgmt.privatedns.models.RecordSet - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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.RecordSet] = kwargs.pop("cls", None) - - _request = build_get_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_name, - record_type=record_type, - relative_record_set_name=relative_record_set_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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - deserialized = self._deserialize("RecordSet", pipeline_response.http_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - @distributed_trace - def list_by_type( - self, - resource_group_name: str, - private_zone_name: str, - record_type: Union[str, _models.RecordType], - top: Optional[int] = None, - recordsetnamesuffix: Optional[str] = None, - **kwargs: Any - ) -> AsyncIterable["_models.RecordSet"]: - """Lists the record sets of a specified type in a Private DNS zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param record_type: The type of record sets to enumerate. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param top: The maximum number of record sets to return. If not specified, returns up to 100 - record sets. Default value is None. - :type top: int - :param recordsetnamesuffix: The suffix label of the record set name to be used to filter the - record set enumeration. If this parameter is specified, the returned enumeration will only - contain records that end with ".:code:``". Default value is None. - :type recordsetnamesuffix: str - :return: An iterator like instance of either RecordSet or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.RecordSet] - :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.RecordSetListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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_type_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_name, - record_type=record_type, - subscription_id=self._config.subscription_id, - top=top, - recordsetnamesuffix=recordsetnamesuffix, - 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("RecordSetListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - @distributed_trace def list( self, @@ -680,7 +694,8 @@ def list( ) -> AsyncIterable["_models.RecordSet"]: """Lists all record sets in a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -690,7 +705,7 @@ def list( :type top: int :param recordsetnamesuffix: The suffix label of the record set name to be used to filter the record set enumeration. If this parameter is specified, the returned enumeration will only - contain records that end with ".:code:``". Default value is None. + contain records that end with ".\\ :code:``". Default value is None. :type recordsetnamesuffix: str :return: An iterator like instance of either RecordSet or the result of cls(response) :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.RecordSet] @@ -702,7 +717,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecordSetListResult] = kwargs.pop("cls", None) - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -760,7 +775,8 @@ async def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_virtual_network_links_operations.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_virtual_network_links_operations.py index 566a9308b716..1078ff7fda00 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_virtual_network_links_operations.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/aio/operations/_virtual_network_links_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=too-many-lines,too-many-statements # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,11 +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 -import sys -from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, Type, 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, @@ -32,6 +32,7 @@ from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling from ... import models as _models +from ..._utils.serialization import Deserializer, Serializer from ...operations._virtual_network_links_operations import ( build_create_or_update_request, build_delete_request, @@ -39,11 +40,8 @@ build_list_request, build_update_request, ) +from .._configuration import PrivateDnsManagementClientConfiguration -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -62,10 +60,164 @@ class VirtualNetworkLinksOperations: 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: PrivateDnsManagementClientConfiguration = ( + 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, resource_group_name: str, private_zone_name: str, top: Optional[int] = None, **kwargs: Any + ) -> AsyncIterable["_models.VirtualNetworkLink"]: + """Lists the virtual network links to the specified Private DNS zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param top: The maximum number of virtual network links to return. If not specified, returns up + to 100 virtual network links. Default value is None. + :type top: int + :return: An iterator like instance of either VirtualNetworkLink or the result of cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.VirtualNetworkLink] + :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.VirtualNetworkLinkListResult] = 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_group_name=resource_group_name, + private_zone_name=private_zone_name, + subscription_id=self._config.subscription_id, + top=top, + 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("VirtualNetworkLinkListResult", 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_group_name: str, private_zone_name: str, virtual_network_link_name: str, **kwargs: Any + ) -> _models.VirtualNetworkLink: + """Gets a virtual network link to the specified Private DNS zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param virtual_network_link_name: The name of the virtual network link. Required. + :type virtual_network_link_name: str + :return: VirtualNetworkLink or the result of cls(response) + :rtype: ~azure.mgmt.privatedns.models.VirtualNetworkLink + :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.VirtualNetworkLink] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_name, + virtual_network_link_name=virtual_network_link_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("VirtualNetworkLink", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore async def _create_or_update_initial( self, @@ -77,7 +229,7 @@ async def _create_or_update_initial( if_none_match: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -130,12 +282,22 @@ async def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 201: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -154,7 +316,8 @@ async def begin_create_or_update( ) -> AsyncLROPoller[_models.VirtualNetworkLink]: """Creates or updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -195,7 +358,8 @@ async def begin_create_or_update( ) -> AsyncLROPoller[_models.VirtualNetworkLink]: """Creates or updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -234,7 +398,8 @@ async def begin_create_or_update( ) -> AsyncLROPoller[_models.VirtualNetworkLink]: """Creates or updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -291,7 +456,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + 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: @@ -316,7 +483,7 @@ async def _update_initial( if_match: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -368,12 +535,18 @@ async def _update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -391,7 +564,8 @@ async def begin_update( ) -> AsyncLROPoller[_models.VirtualNetworkLink]: """Updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -427,7 +601,8 @@ async def begin_update( ) -> AsyncLROPoller[_models.VirtualNetworkLink]: """Updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -461,7 +636,8 @@ async def begin_update( ) -> AsyncLROPoller[_models.VirtualNetworkLink]: """Updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -513,7 +689,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + 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: @@ -537,7 +715,7 @@ async def _delete_initial( if_match: Optional[str] = None, **kwargs: Any ) -> AsyncIterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -577,12 +755,18 @@ async def _delete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -599,7 +783,8 @@ async def begin_delete( registration virtual network, all auto-registered DNS records in the zone for the virtual network will also be deleted. This operation cannot be undone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -642,7 +827,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- return cls(pipeline_response, None, {}) # type: ignore if polling is True: - polling_method: AsyncPollingMethod = cast(AsyncPollingMethod, AsyncARMPolling(lro_delay, **kwargs)) + 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: @@ -655,151 +842,3 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- deserialization_callback=get_long_running_output, ) return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - @distributed_trace_async - async def get( - self, resource_group_name: str, private_zone_name: str, virtual_network_link_name: str, **kwargs: Any - ) -> _models.VirtualNetworkLink: - """Gets a virtual network link to the specified Private DNS zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param virtual_network_link_name: The name of the virtual network link. Required. - :type virtual_network_link_name: str - :return: VirtualNetworkLink or the result of cls(response) - :rtype: ~azure.mgmt.privatedns.models.VirtualNetworkLink - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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.VirtualNetworkLink] = kwargs.pop("cls", None) - - _request = build_get_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_name, - virtual_network_link_name=virtual_network_link_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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - deserialized = self._deserialize("VirtualNetworkLink", pipeline_response.http_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - @distributed_trace - def list( - self, resource_group_name: str, private_zone_name: str, top: Optional[int] = None, **kwargs: Any - ) -> AsyncIterable["_models.VirtualNetworkLink"]: - """Lists the virtual network links to the specified Private DNS zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param top: The maximum number of virtual network links to return. If not specified, returns up - to 100 virtual network links. Default value is None. - :type top: int - :return: An iterator like instance of either VirtualNetworkLink or the result of cls(response) - :rtype: - ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.privatedns.models.VirtualNetworkLink] - :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.VirtualNetworkLinkListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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_group_name=resource_group_name, - private_zone_name=private_zone_name, - subscription_id=self._config.subscription_id, - top=top, - 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("VirtualNetworkLinkListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/__init__.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/__init__.py index bf60165bafdb..9ffe74c6a5fe 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/__init__.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/__init__.py @@ -5,40 +5,57 @@ # 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 ARecord -from ._models_py3 import AaaaRecord -from ._models_py3 import CloudErrorBody -from ._models_py3 import CnameRecord -from ._models_py3 import MxRecord -from ._models_py3 import PrivateZone -from ._models_py3 import PrivateZoneListResult -from ._models_py3 import ProxyResource -from ._models_py3 import PtrRecord -from ._models_py3 import RecordSet -from ._models_py3 import RecordSetListResult -from ._models_py3 import Resource -from ._models_py3 import SoaRecord -from ._models_py3 import SrvRecord -from ._models_py3 import SubResource -from ._models_py3 import TrackedResource -from ._models_py3 import TxtRecord -from ._models_py3 import VirtualNetworkLink -from ._models_py3 import VirtualNetworkLinkListResult +from typing import TYPE_CHECKING -from ._private_dns_management_client_enums import ProvisioningState -from ._private_dns_management_client_enums import RecordType -from ._private_dns_management_client_enums import ResolutionPolicy -from ._private_dns_management_client_enums import VirtualNetworkLinkState +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._models_py3 import ( # type: ignore + ARecord, + AaaaRecord, + CnameRecord, + ErrorAdditionalInfo, + ErrorDetail, + ErrorResponse, + MxRecord, + PrivateZone, + PrivateZoneListResult, + ProxyResource, + PtrRecord, + RecordSet, + RecordSetListResult, + Resource, + SoaRecord, + SrvRecord, + SubResource, + SystemData, + TrackedResource, + TxtRecord, + VirtualNetworkLink, + VirtualNetworkLinkListResult, +) + +from ._private_dns_management_client_enums import ( # type: ignore + CreatedByType, + ProvisioningState, + RecordType, + ResolutionPolicy, + VirtualNetworkLinkState, +) 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__ = [ "ARecord", "AaaaRecord", - "CloudErrorBody", "CnameRecord", + "ErrorAdditionalInfo", + "ErrorDetail", + "ErrorResponse", "MxRecord", "PrivateZone", "PrivateZoneListResult", @@ -50,14 +67,16 @@ "SoaRecord", "SrvRecord", "SubResource", + "SystemData", "TrackedResource", "TxtRecord", "VirtualNetworkLink", "VirtualNetworkLinkListResult", + "CreatedByType", "ProvisioningState", "RecordType", "ResolutionPolicy", "VirtualNetworkLinkState", ] -__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/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_models_py3.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_models_py3.py index 7dff8c3ecd96..9a802f898fe0 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_models_py3.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_models_py3.py @@ -1,5 +1,5 @@ +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 -# pylint: disable=too-many-lines # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. @@ -7,12 +7,12 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +import datetime from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union -from .. import _serialization +from .._utils import serialization as _serialization if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports from .. import models as _models @@ -56,76 +56,116 @@ def __init__(self, *, ipv4_address: Optional[str] = None, **kwargs: Any) -> None self.ipv4_address = ipv4_address -class CloudErrorBody(_serialization.Model): - """An error response from the service. +class CnameRecord(_serialization.Model): + """A CNAME record. + + :ivar cname: The canonical name for this CNAME record. + :vartype cname: str + """ + + _attribute_map = { + "cname": {"key": "cname", "type": "str"}, + } + + def __init__(self, *, cname: Optional[str] = None, **kwargs: Any) -> None: + """ + :keyword cname: The canonical name for this CNAME record. + :paramtype cname: str + """ + super().__init__(**kwargs) + self.cname = cname - :ivar code: An identifier for the error. Codes are invariant and are intended to be consumed - programmatically. + +class ErrorAdditionalInfo(_serialization.Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: JSON + """ + + _validation = { + "type": {"readonly": True}, + "info": {"readonly": True}, + } + + _attribute_map = { + "type": {"key": "type", "type": "str"}, + "info": {"key": "info", "type": "object"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.type: Optional[str] = None + self.info: Optional[JSON] = None + + +class ErrorDetail(_serialization.Model): + """The error detail. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The error code. :vartype code: str - :ivar message: A message describing the error, intended to be suitable for display in a user - interface. + :ivar message: The error message. :vartype message: str - :ivar target: The target of the particular error. For example, the name of the property in - error. + :ivar target: The error target. :vartype target: str - :ivar details: A list of additional details about the error. - :vartype details: list[~azure.mgmt.privatedns.models.CloudErrorBody] + :ivar details: The error details. + :vartype details: list[~azure.mgmt.privatedns.models.ErrorDetail] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure.mgmt.privatedns.models.ErrorAdditionalInfo] """ + _validation = { + "code": {"readonly": True}, + "message": {"readonly": True}, + "target": {"readonly": True}, + "details": {"readonly": True}, + "additional_info": {"readonly": True}, + } + _attribute_map = { "code": {"key": "code", "type": "str"}, "message": {"key": "message", "type": "str"}, "target": {"key": "target", "type": "str"}, - "details": {"key": "details", "type": "[CloudErrorBody]"}, + "details": {"key": "details", "type": "[ErrorDetail]"}, + "additional_info": {"key": "additionalInfo", "type": "[ErrorAdditionalInfo]"}, } - def __init__( - self, - *, - code: Optional[str] = None, - message: Optional[str] = None, - target: Optional[str] = None, - details: Optional[List["_models.CloudErrorBody"]] = None, - **kwargs: Any - ) -> None: - """ - :keyword code: An identifier for the error. Codes are invariant and are intended to be consumed - programmatically. - :paramtype code: str - :keyword message: A message describing the error, intended to be suitable for display in a user - interface. - :paramtype message: str - :keyword target: The target of the particular error. For example, the name of the property in - error. - :paramtype target: str - :keyword details: A list of additional details about the error. - :paramtype details: list[~azure.mgmt.privatedns.models.CloudErrorBody] - """ + def __init__(self, **kwargs: Any) -> None: + """ """ super().__init__(**kwargs) - self.code = code - self.message = message - self.target = target - self.details = details + 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 CnameRecord(_serialization.Model): - """A CNAME record. +class ErrorResponse(_serialization.Model): + """Common error response for all Azure Resource Manager APIs to return error details for failed + operations. (This also follows the OData error response format.). - :ivar cname: The canonical name for this CNAME record. - :vartype cname: str + :ivar error: The error object. + :vartype error: ~azure.mgmt.privatedns.models.ErrorDetail """ _attribute_map = { - "cname": {"key": "cname", "type": "str"}, + "error": {"key": "error", "type": "ErrorDetail"}, } - def __init__(self, *, cname: Optional[str] = None, **kwargs: Any) -> None: + def __init__(self, *, error: Optional["_models.ErrorDetail"] = None, **kwargs: Any) -> None: """ - :keyword cname: The canonical name for this CNAME record. - :paramtype cname: str + :keyword error: The error object. + :paramtype error: ~azure.mgmt.privatedns.models.ErrorDetail """ super().__init__(**kwargs) - self.cname = cname + self.error = error class MxRecord(_serialization.Model): @@ -155,54 +195,68 @@ def __init__(self, *, preference: Optional[int] = None, exchange: Optional[str] class Resource(_serialization.Model): - """The core properties of ARM resources. + """Common fields that are returned in the response for all Azure Resource Manager resources. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Example - - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateDnsZoneName}'. # pylint: disable=line-too-long + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Example - 'Microsoft.Network/privateDnsZones'. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.privatedns.models.SystemData """ _validation = { "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, + "system_data": {"readonly": True}, } _attribute_map = { "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, } def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) - self.id = None - self.name = None - self.type = None + self.id: Optional[str] = None + self.name: Optional[str] = None + self.type: Optional[str] = None + self.system_data: Optional["_models.SystemData"] = None class TrackedResource(Resource): - """The resource model definition for a ARM tracked top level resource. + """The resource model definition for an Azure Resource Manager tracked top level resource which + has 'tags' and a 'location'. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Example - - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateDnsZoneName}'. # pylint: disable=line-too-long + All required parameters must be populated in order to send to server. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Example - 'Microsoft.Network/privateDnsZones'. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.privatedns.models.SystemData :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar location: The Azure Region where the resource lives. + :ivar location: The geo-location where the resource lives. Required. :vartype location: str """ @@ -210,21 +264,24 @@ class TrackedResource(Resource): "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, } _attribute_map = { "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, "tags": {"key": "tags", "type": "{str}"}, "location": {"key": "location", "type": "str"}, } - def __init__(self, *, tags: Optional[Dict[str, str]] = None, location: Optional[str] = None, **kwargs: Any) -> None: + def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: """ :keyword tags: Resource tags. :paramtype tags: dict[str, str] - :keyword location: The Azure Region where the resource lives. + :keyword location: The geo-location where the resource lives. Required. :paramtype location: str """ super().__init__(**kwargs) @@ -232,21 +289,27 @@ def __init__(self, *, tags: Optional[Dict[str, str]] = None, location: Optional[ self.location = location -class PrivateZone(TrackedResource): # pylint: disable=too-many-instance-attributes +class PrivateZone(TrackedResource): """Describes a Private DNS zone. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Example - - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateDnsZoneName}'. # pylint: disable=line-too-long + All required parameters must be populated in order to send to server. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Example - 'Microsoft.Network/privateDnsZones'. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.privatedns.models.SystemData :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar location: The Azure Region where the resource lives. + :ivar location: The geo-location where the resource lives. Required. :vartype location: str :ivar etag: The ETag of the zone. :vartype etag: str @@ -285,6 +348,8 @@ class PrivateZone(TrackedResource): # pylint: disable=too-many-instance-attribu "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, "max_number_of_record_sets": {"readonly": True}, "number_of_record_sets": {"readonly": True}, "max_number_of_virtual_network_links": {"readonly": True}, @@ -299,6 +364,7 @@ class PrivateZone(TrackedResource): # pylint: disable=too-many-instance-attribu "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, "tags": {"key": "tags", "type": "{str}"}, "location": {"key": "location", "type": "str"}, "etag": {"key": "etag", "type": "str"}, @@ -319,46 +385,41 @@ class PrivateZone(TrackedResource): # pylint: disable=too-many-instance-attribu } def __init__( - self, - *, - tags: Optional[Dict[str, str]] = None, - location: Optional[str] = None, - etag: Optional[str] = None, - **kwargs: Any + self, *, location: str, tags: Optional[Dict[str, str]] = None, etag: Optional[str] = None, **kwargs: Any ) -> None: """ :keyword tags: Resource tags. :paramtype tags: dict[str, str] - :keyword location: The Azure Region where the resource lives. + :keyword location: The geo-location where the resource lives. Required. :paramtype location: str :keyword etag: The ETag of the zone. :paramtype etag: str """ super().__init__(tags=tags, location=location, **kwargs) self.etag = etag - self.max_number_of_record_sets = None - self.number_of_record_sets = None - self.max_number_of_virtual_network_links = None - self.number_of_virtual_network_links = None - self.max_number_of_virtual_network_links_with_registration = None - self.number_of_virtual_network_links_with_registration = None - self.provisioning_state = None - self.internal_id = None + self.max_number_of_record_sets: Optional[int] = None + self.number_of_record_sets: Optional[int] = None + self.max_number_of_virtual_network_links: Optional[int] = None + self.number_of_virtual_network_links: Optional[int] = None + self.max_number_of_virtual_network_links_with_registration: Optional[int] = None + self.number_of_virtual_network_links_with_registration: Optional[int] = None + self.provisioning_state: Optional[Union[str, "_models.ProvisioningState"]] = None + self.internal_id: Optional[str] = None class PrivateZoneListResult(_serialization.Model): - """The response to a Private DNS zone list operation. + """The response of a PrivateZone list operation. - 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 value: Information about the Private DNS zones. + :ivar value: The PrivateZone items on this page. Required. :vartype value: list[~azure.mgmt.privatedns.models.PrivateZone] - :ivar next_link: The continuation token for the next page of results. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ _validation = { - "next_link": {"readonly": True}, + "value": {"required": True}, } _attribute_map = { @@ -366,28 +427,35 @@ class PrivateZoneListResult(_serialization.Model): "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, *, value: Optional[List["_models.PrivateZone"]] = None, **kwargs: Any) -> None: + def __init__(self, *, value: List["_models.PrivateZone"], next_link: Optional[str] = None, **kwargs: Any) -> None: """ - :keyword value: Information about the Private DNS zones. + :keyword value: The PrivateZone items on this page. Required. :paramtype value: list[~azure.mgmt.privatedns.models.PrivateZone] + :keyword next_link: The link to the next page of items. + :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = None + self.next_link = next_link class ProxyResource(Resource): - """The resource model definition for an ARM proxy resource. + """The resource model definition for a Azure Resource Manager proxy resource. It will not have + tags and a location. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Example - - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateDnsZoneName}'. # pylint: disable=line-too-long + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Example - 'Microsoft.Network/privateDnsZones'. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.privatedns.models.SystemData """ @@ -411,19 +479,23 @@ def __init__(self, *, ptrdname: Optional[str] = None, **kwargs: Any) -> None: self.ptrdname = ptrdname -class RecordSet(ProxyResource): # pylint: disable=too-many-instance-attributes +class RecordSet(ProxyResource): """Describes a DNS record set (a collection of DNS records with the same name and type) in a Private DNS zone. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Example - - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateDnsZoneName}'. # pylint: disable=line-too-long + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Example - 'Microsoft.Network/privateDnsZones'. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.privatedns.models.SystemData :ivar etag: The ETag of the record set. :vartype etag: str :ivar metadata: The metadata attached to the record set. @@ -457,6 +529,7 @@ class RecordSet(ProxyResource): # pylint: disable=too-many-instance-attributes "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, + "system_data": {"readonly": True}, "fqdn": {"readonly": True}, "is_auto_registered": {"readonly": True}, } @@ -465,6 +538,7 @@ class RecordSet(ProxyResource): # pylint: disable=too-many-instance-attributes "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, "etag": {"key": "etag", "type": "str"}, "metadata": {"key": "properties.metadata", "type": "{str}"}, "ttl": {"key": "properties.ttl", "type": "int"}, @@ -524,8 +598,8 @@ def __init__( self.etag = etag self.metadata = metadata self.ttl = ttl - self.fqdn = None - self.is_auto_registered = None + self.fqdn: Optional[str] = None + self.is_auto_registered: Optional[bool] = None self.a_records = a_records self.aaaa_records = aaaa_records self.cname_record = cname_record @@ -537,18 +611,18 @@ def __init__( class RecordSetListResult(_serialization.Model): - """The response to a record set list operation. + """The response of a RecordSet list operation. - 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 value: Information about the record sets in the response. + :ivar value: The RecordSet items on this page. Required. :vartype value: list[~azure.mgmt.privatedns.models.RecordSet] - :ivar next_link: The continuation token for the next page of results. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ _validation = { - "next_link": {"readonly": True}, + "value": {"required": True}, } _attribute_map = { @@ -556,14 +630,16 @@ class RecordSetListResult(_serialization.Model): "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, *, value: Optional[List["_models.RecordSet"]] = None, **kwargs: Any) -> None: + def __init__(self, *, value: List["_models.RecordSet"], next_link: Optional[str] = None, **kwargs: Any) -> None: """ - :keyword value: Information about the record sets in the response. + :keyword value: The RecordSet items on this page. Required. :paramtype value: list[~azure.mgmt.privatedns.models.RecordSet] + :keyword next_link: The link to the next page of items. + :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = None + self.next_link = next_link class SoaRecord(_serialization.Model): @@ -701,6 +777,70 @@ def __init__(self, *, id: Optional[str] = None, **kwargs: Any) -> None: # pylin self.id = id +class SystemData(_serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + :ivar created_by: The identity that created the resource. + :vartype created_by: str + :ivar created_by_type: The type of identity that created the resource. Known values are: + "User", "Application", "ManagedIdentity", and "Key". + :vartype created_by_type: str or ~azure.mgmt.privatedns.models.CreatedByType + :ivar created_at: The timestamp of resource creation (UTC). + :vartype created_at: ~datetime.datetime + :ivar last_modified_by: The identity that last modified the resource. + :vartype last_modified_by: str + :ivar last_modified_by_type: The type of identity that last modified the resource. Known values + are: "User", "Application", "ManagedIdentity", and "Key". + :vartype last_modified_by_type: str or ~azure.mgmt.privatedns.models.CreatedByType + :ivar last_modified_at: The timestamp of resource last modification (UTC). + :vartype last_modified_at: ~datetime.datetime + """ + + _attribute_map = { + "created_by": {"key": "createdBy", "type": "str"}, + "created_by_type": {"key": "createdByType", "type": "str"}, + "created_at": {"key": "createdAt", "type": "iso-8601"}, + "last_modified_by": {"key": "lastModifiedBy", "type": "str"}, + "last_modified_by_type": {"key": "lastModifiedByType", "type": "str"}, + "last_modified_at": {"key": "lastModifiedAt", "type": "iso-8601"}, + } + + def __init__( + self, + *, + created_by: Optional[str] = None, + created_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, + created_at: Optional[datetime.datetime] = None, + last_modified_by: Optional[str] = None, + last_modified_by_type: Optional[Union[str, "_models.CreatedByType"]] = None, + last_modified_at: Optional[datetime.datetime] = None, + **kwargs: Any + ) -> None: + """ + :keyword created_by: The identity that created the resource. + :paramtype created_by: str + :keyword created_by_type: The type of identity that created the resource. Known values are: + "User", "Application", "ManagedIdentity", and "Key". + :paramtype created_by_type: str or ~azure.mgmt.privatedns.models.CreatedByType + :keyword created_at: The timestamp of resource creation (UTC). + :paramtype created_at: ~datetime.datetime + :keyword last_modified_by: The identity that last modified the resource. + :paramtype last_modified_by: str + :keyword last_modified_by_type: The type of identity that last modified the resource. Known + values are: "User", "Application", "ManagedIdentity", and "Key". + :paramtype last_modified_by_type: str or ~azure.mgmt.privatedns.models.CreatedByType + :keyword last_modified_at: The timestamp of resource last modification (UTC). + :paramtype last_modified_at: ~datetime.datetime + """ + super().__init__(**kwargs) + self.created_by = created_by + self.created_by_type = created_by_type + self.created_at = created_at + self.last_modified_by = last_modified_by + self.last_modified_by_type = last_modified_by_type + self.last_modified_at = last_modified_at + + class TxtRecord(_serialization.Model): """A TXT record. @@ -721,21 +861,27 @@ def __init__(self, *, value: Optional[List[str]] = None, **kwargs: Any) -> None: self.value = value -class VirtualNetworkLink(TrackedResource): # pylint: disable=too-many-instance-attributes +class VirtualNetworkLink(TrackedResource): """Describes a link to virtual network for a Private DNS zone. Variables are only populated by the server, and will be ignored when sending a request. - :ivar id: Fully qualified resource Id for the resource. Example - - '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateDnsZoneName}'. # pylint: disable=line-too-long + All required parameters must be populated in order to send to server. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. :vartype id: str :ivar name: The name of the resource. :vartype name: str - :ivar type: The type of the resource. Example - 'Microsoft.Network/privateDnsZones'. + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". :vartype type: str + :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy + information. + :vartype system_data: ~azure.mgmt.privatedns.models.SystemData :ivar tags: Resource tags. :vartype tags: dict[str, str] - :ivar location: The Azure Region where the resource lives. + :ivar location: The geo-location where the resource lives. Required. :vartype location: str :ivar etag: The ETag of the virtual network link. :vartype etag: str @@ -765,6 +911,8 @@ class VirtualNetworkLink(TrackedResource): # pylint: disable=too-many-instance- "id": {"readonly": True}, "name": {"readonly": True}, "type": {"readonly": True}, + "system_data": {"readonly": True}, + "location": {"required": True}, "virtual_network_link_state": {"readonly": True}, "provisioning_state": {"readonly": True}, } @@ -773,6 +921,7 @@ class VirtualNetworkLink(TrackedResource): # pylint: disable=too-many-instance- "id": {"key": "id", "type": "str"}, "name": {"key": "name", "type": "str"}, "type": {"key": "type", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, "tags": {"key": "tags", "type": "{str}"}, "location": {"key": "location", "type": "str"}, "etag": {"key": "etag", "type": "str"}, @@ -786,8 +935,8 @@ class VirtualNetworkLink(TrackedResource): # pylint: disable=too-many-instance- def __init__( self, *, + location: str, tags: Optional[Dict[str, str]] = None, - location: Optional[str] = None, etag: Optional[str] = None, virtual_network: Optional["_models.SubResource"] = None, registration_enabled: Optional[bool] = None, @@ -797,7 +946,7 @@ def __init__( """ :keyword tags: Resource tags. :paramtype tags: dict[str, str] - :keyword location: The Azure Region where the resource lives. + :keyword location: The geo-location where the resource lives. Required. :paramtype location: str :keyword etag: The ETag of the virtual network link. :paramtype etag: str @@ -818,23 +967,23 @@ def __init__( self.virtual_network = virtual_network self.registration_enabled = registration_enabled self.resolution_policy = resolution_policy - self.virtual_network_link_state = None - self.provisioning_state = None + self.virtual_network_link_state: Optional[Union[str, "_models.VirtualNetworkLinkState"]] = None + self.provisioning_state: Optional[Union[str, "_models.ProvisioningState"]] = None class VirtualNetworkLinkListResult(_serialization.Model): - """The response to a list virtual network link to Private DNS zone operation. + """The response of a VirtualNetworkLink list operation. - 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 value: Information about the virtual network links to the Private DNS zones. + :ivar value: The VirtualNetworkLink items on this page. Required. :vartype value: list[~azure.mgmt.privatedns.models.VirtualNetworkLink] - :ivar next_link: The continuation token for the next page of results. + :ivar next_link: The link to the next page of items. :vartype next_link: str """ _validation = { - "next_link": {"readonly": True}, + "value": {"required": True}, } _attribute_map = { @@ -842,11 +991,15 @@ class VirtualNetworkLinkListResult(_serialization.Model): "next_link": {"key": "nextLink", "type": "str"}, } - def __init__(self, *, value: Optional[List["_models.VirtualNetworkLink"]] = None, **kwargs: Any) -> None: + def __init__( + self, *, value: List["_models.VirtualNetworkLink"], next_link: Optional[str] = None, **kwargs: Any + ) -> None: """ - :keyword value: Information about the virtual network links to the Private DNS zones. + :keyword value: The VirtualNetworkLink items on this page. Required. :paramtype value: list[~azure.mgmt.privatedns.models.VirtualNetworkLink] + :keyword next_link: The link to the next page of items. + :paramtype next_link: str """ super().__init__(**kwargs) self.value = value - self.next_link = None + self.next_link = next_link diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_private_dns_management_client_enums.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_private_dns_management_client_enums.py index 5abe1cd1316a..ab86e1a94cb9 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_private_dns_management_client_enums.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/models/_private_dns_management_client_enums.py @@ -10,6 +10,15 @@ from azure.core import CaseInsensitiveEnumMeta +class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The type of identity that created the resource.""" + + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" + + class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The provisioning state of the resource. This is a read-only property and any attempt to set this value will be ignored. diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/__init__.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/__init__.py index 0dc4f10b72ae..900ef0f943b6 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/__init__.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/__init__.py @@ -5,19 +5,25 @@ # 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 ._private_zones_operations import PrivateZonesOperations -from ._virtual_network_links_operations import VirtualNetworkLinksOperations -from ._record_sets_operations import RecordSetsOperations +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._private_zones_operations import PrivateZonesOperations # type: ignore +from ._record_sets_operations import RecordSetsOperations # type: ignore +from ._virtual_network_links_operations import VirtualNetworkLinksOperations # 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__ = [ "PrivateZonesOperations", - "VirtualNetworkLinksOperations", "RecordSetsOperations", + "VirtualNetworkLinksOperations", ] -__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/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_private_zones_operations.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_private_zones_operations.py index 7a2aae174460..6f3767e5c081 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_private_zones_operations.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_private_zones_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines,too-many-statements +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,11 +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 -import sys -from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, Type, 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, @@ -31,12 +32,9 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer +from .._configuration import PrivateDnsManagementClientConfiguration +from .._utils.serialization import Deserializer, Serializer -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -44,98 +42,68 @@ _SERIALIZER.client_side_validation = False -def build_create_or_update_request( - resource_group_name: str, - private_zone_name: str, - subscription_id: str, - *, - if_match: Optional[str] = None, - if_none_match: Optional[str] = None, - **kwargs: Any -) -> HttpRequest: +def build_list_request(subscription_id: str, *, top: Optional[int] = 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}", - ) # pylint: disable=line-too-long + _url = kwargs.pop("template_url", "/subscriptions/{subscriptionId}/providers/Microsoft.Network/privateDnsZones") path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), } _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") - if if_none_match is not None: - _headers["If-None-Match"] = _SERIALIZER.header("if_none_match", if_none_match, "str") - 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) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_update_request( - resource_group_name: str, - private_zone_name: str, - subscription_id: str, - *, - if_match: Optional[str] = None, - **kwargs: Any +def build_list_by_resource_group_request( + resource_group_name: str, subscription_id: str, *, top: Optional[int] = 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), } _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") - 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="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( - resource_group_name: str, - private_zone_name: str, - subscription_id: str, - *, - if_match: Optional[str] = None, - **kwargs: Any +def build_get_request( + resource_group_name: str, private_zone_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -147,11 +115,13 @@ def build_delete_request( _url = kwargs.pop( "template_url", "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}", - ) # 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", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -160,31 +130,38 @@ def build_delete_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_get_request( - resource_group_name: str, private_zone_name: str, subscription_id: str, **kwargs: Any +def build_create_or_update_request( + resource_group_name: str, + private_zone_name: str, + subscription_id: str, + *, + if_match: Optional[str] = None, + if_none_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}", - ) # 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", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -193,39 +170,67 @@ def build_get_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") + if if_none_match is not None: + _headers["if-none-match"] = _SERIALIZER.header("if_none_match", if_none_match, "str") + 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="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_request(subscription_id: str, *, top: Optional[int] = None, **kwargs: Any) -> HttpRequest: +def build_update_request( + resource_group_name: str, + private_zone_name: str, + subscription_id: str, + *, + if_match: 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", "2024-06-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}/providers/Microsoft.Network/privateDnsZones") + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}", + ) path_format_arguments = { - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters - if top is not None: - _params["$top"] = _SERIALIZER.query("top", top, "int") _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") + 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="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_resource_group_request( - resource_group_name: str, subscription_id: str, *, top: Optional[int] = None, **kwargs: Any +def build_delete_request( + resource_group_name: str, + private_zone_name: str, + subscription_id: str, + *, + if_match: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -236,44 +241,271 @@ def build_list_by_resource_group_request( # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters - if top is not None: - _params["$top"] = _SERIALIZER.query("top", top, "int") _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +class PrivateZonesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.privatedns.PrivateDnsManagementClient`'s + :attr:`private_zones` 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: PrivateDnsManagementClientConfiguration = ( + 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, top: Optional[int] = None, **kwargs: Any) -> Iterable["_models.PrivateZone"]: + """Lists the Private DNS zones in all resource groups in a subscription. + + :param top: The maximum number of Private DNS zones to return. If not specified, returns up to + 100 zones. Default value is None. + :type top: int + :return: An iterator like instance of either PrivateZone or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.PrivateZone] + :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.PrivateZoneListResult] = 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( + subscription_id=self._config.subscription_id, + top=top, + 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("PrivateZoneListResult", 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 list_by_resource_group( + self, resource_group_name: str, top: Optional[int] = None, **kwargs: Any + ) -> Iterable["_models.PrivateZone"]: + """Lists the Private DNS zones within a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param top: The maximum number of record sets to return. If not specified, returns up to 100 + record sets. Default value is None. + :type top: int + :return: An iterator like instance of either PrivateZone or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.PrivateZone] + :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.PrivateZoneListResult] = 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_resource_group_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + top=top, + 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("PrivateZoneListResult", 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_group_name: str, private_zone_name: str, **kwargs: Any) -> _models.PrivateZone: + """Gets a Private DNS zone. Retrieves the zone properties, but not the virtual networks links or + the record sets within the zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :return: PrivateZone or the result of cls(response) + :rtype: ~azure.mgmt.privatedns.models.PrivateZone + :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.PrivateZone] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_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 -class PrivateZonesOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - Instead, you should access the following operations through - :class:`~azure.mgmt.privatedns.PrivateDnsManagementClient`'s - :attr:`private_zones` attribute. - """ + deserialized = self._deserialize("PrivateZone", pipeline_response.http_response) - models = _models + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore - 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") + return deserialized # type: ignore def _create_or_update_initial( self, @@ -284,7 +516,7 @@ def _create_or_update_initial( if_none_match: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -336,12 +568,22 @@ def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 201: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -360,7 +602,8 @@ def begin_create_or_update( """Creates or updates a Private DNS zone. Does not modify Links to virtual networks or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -398,7 +641,8 @@ def begin_create_or_update( """Creates or updates a Private DNS zone. Does not modify Links to virtual networks or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -434,7 +678,8 @@ def begin_create_or_update( """Creates or updates a Private DNS zone. Does not modify Links to virtual networks or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -487,7 +732,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + 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: @@ -511,7 +758,7 @@ def _update_initial( if_match: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -562,12 +809,18 @@ def _update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -585,7 +838,8 @@ def begin_update( """Updates a Private DNS zone. Does not modify virtual network links or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -619,7 +873,8 @@ def begin_update( """Updates a Private DNS zone. Does not modify virtual network links or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -651,7 +906,8 @@ def begin_update( """Updates a Private DNS zone. Does not modify virtual network links or DNS records within the zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -700,7 +956,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + 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: @@ -719,7 +977,7 @@ def get_long_running_output(pipeline_response): def _delete_initial( self, resource_group_name: str, private_zone_name: str, if_match: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -758,12 +1016,18 @@ def _delete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -775,7 +1039,8 @@ def begin_delete( operation cannot be undone. Private DNS zone cannot be deleted unless all virtual network links to it are removed. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -815,7 +1080,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- return cls(pipeline_response, None, {}) # type: ignore if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + 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: @@ -828,220 +1095,3 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- deserialization_callback=get_long_running_output, ) return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - @distributed_trace - def get(self, resource_group_name: str, private_zone_name: str, **kwargs: Any) -> _models.PrivateZone: - """Gets a Private DNS zone. Retrieves the zone properties, but not the virtual networks links or - the record sets within the zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :return: PrivateZone or the result of cls(response) - :rtype: ~azure.mgmt.privatedns.models.PrivateZone - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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.PrivateZone] = kwargs.pop("cls", None) - - _request = build_get_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - deserialized = self._deserialize("PrivateZone", pipeline_response.http_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - @distributed_trace - def list(self, top: Optional[int] = None, **kwargs: Any) -> Iterable["_models.PrivateZone"]: - """Lists the Private DNS zones in all resource groups in a subscription. - - :param top: The maximum number of Private DNS zones to return. If not specified, returns up to - 100 zones. Default value is None. - :type top: int - :return: An iterator like instance of either PrivateZone or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.PrivateZone] - :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.PrivateZoneListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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( - subscription_id=self._config.subscription_id, - top=top, - 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("PrivateZoneListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - @distributed_trace - def list_by_resource_group( - self, resource_group_name: str, top: Optional[int] = None, **kwargs: Any - ) -> Iterable["_models.PrivateZone"]: - """Lists the Private DNS zones within a resource group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param top: The maximum number of record sets to return. If not specified, returns up to 100 - record sets. Default value is None. - :type top: int - :return: An iterator like instance of either PrivateZone or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.PrivateZone] - :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.PrivateZoneListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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_resource_group_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - top=top, - 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("PrivateZoneListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_record_sets_operations.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_record_sets_operations.py index 7f2180490169..cad4a1b61f53 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_record_sets_operations.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_record_sets_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines,too-many-statements +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,11 +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 -import sys -from typing import Any, Callable, Dict, IO, Iterable, Optional, Type, TypeVar, Union, overload +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, @@ -27,12 +28,9 @@ from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models as _models -from .._serialization import Serializer +from .._configuration import PrivateDnsManagementClientConfiguration +from .._utils.serialization import Deserializer, Serializer -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -40,86 +38,78 @@ _SERIALIZER.client_side_validation = False -def build_create_or_update_request( +def build_list_by_type_request( resource_group_name: str, private_zone_name: str, record_type: Union[str, _models.RecordType], - relative_record_set_name: str, subscription_id: str, *, - if_match: Optional[str] = None, - if_none_match: Optional[str] = None, + top: Optional[int] = None, + recordsetnamesuffix: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/{recordType}/{recordType}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), "recordType": _SERIALIZER.url("record_type", record_type, "str"), - "relativeRecordSetName": _SERIALIZER.url( - "relative_record_set_name", relative_record_set_name, "str", skip_quote=True - ), - "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 top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if recordsetnamesuffix is not None: + _params["$recordsetnamesuffix"] = _SERIALIZER.query("recordsetnamesuffix", recordsetnamesuffix, "str") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") - if if_none_match is not None: - _headers["If-None-Match"] = _SERIALIZER.header("if_none_match", if_none_match, "str") - 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) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_update_request( +def build_get_request( resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], subscription_id: str, - *, - if_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}/{recordType}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), + "relativeRecordSetName": _SERIALIZER.url("relative_record_set_name", relative_record_set_name, "str"), "recordType": _SERIALIZER.url("record_type", record_type, "str"), - "relativeRecordSetName": _SERIALIZER.url( - "relative_record_set_name", relative_record_set_name, "str", skip_quote=True - ), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -128,44 +118,42 @@ def build_update_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") - 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="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( +def build_create_or_update_request( resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], subscription_id: str, *, if_match: Optional[str] = None, + if_none_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}/{recordType}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), + "relativeRecordSetName": _SERIALIZER.url("relative_record_set_name", relative_record_set_name, "str"), "recordType": _SERIALIZER.url("record_type", record_type, "str"), - "relativeRecordSetName": _SERIALIZER.url( - "relative_record_set_name", relative_record_set_name, "str", skip_quote=True - ), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -175,39 +163,46 @@ def build_delete_request( # Construct headers if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") + if if_none_match is not None: + _headers["if-none-match"] = _SERIALIZER.header("if_none_match", if_none_match, "str") + 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="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_get_request( +def build_update_request( resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], subscription_id: str, + *, + if_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}/{recordType}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), + "relativeRecordSetName": _SERIALIZER.url("relative_record_set_name", relative_record_set_name, "str"), "recordType": _SERIALIZER.url("record_type", record_type, "str"), - "relativeRecordSetName": _SERIALIZER.url( - "relative_record_set_name", relative_record_set_name, "str", skip_quote=True - ), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -216,19 +211,23 @@ def build_get_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") + 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="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_by_type_request( +def build_delete_request( resource_group_name: str, private_zone_name: str, + relative_record_set_name: str, record_type: Union[str, _models.RecordType], subscription_id: str, *, - top: Optional[int] = None, - recordsetnamesuffix: Optional[str] = None, + if_match: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) @@ -240,28 +239,29 @@ def build_list_by_type_request( # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/{recordType}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/{recordType}/{relativeRecordSetName}/{recordType}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), + "relativeRecordSetName": _SERIALIZER.url("relative_record_set_name", relative_record_set_name, "str"), "recordType": _SERIALIZER.url("record_type", record_type, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters - if top is not None: - _params["$top"] = _SERIALIZER.query("top", top, "int") - if recordsetnamesuffix is not None: - _params["$recordsetnamesuffix"] = _SERIALIZER.query("recordsetnamesuffix", recordsetnamesuffix, "str") _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) def build_list_request( @@ -282,22 +282,24 @@ def build_list_request( # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/ALL", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/aLL", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "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 top is not None: _params["$top"] = _SERIALIZER.query("top", top, "int") if recordsetnamesuffix is not None: _params["$recordsetnamesuffix"] = _SERIALIZER.query("recordsetnamesuffix", recordsetnamesuffix, "str") - _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -319,18 +321,196 @@ class RecordSetsOperations: 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: PrivateDnsManagementClientConfiguration = ( + 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_type( + self, + resource_group_name: str, + private_zone_name: str, + record_type: Union[str, _models.RecordType], + top: Optional[int] = None, + recordsetnamesuffix: Optional[str] = None, + **kwargs: Any + ) -> Iterable["_models.RecordSet"]: + """Lists the record sets of a specified type in a Private DNS zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param record_type: The type of record sets to enumerate. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType + :param top: The maximum number of record sets to return. If not specified, returns up to 100 + record sets. Default value is None. + :type top: int + :param recordsetnamesuffix: The suffix label of the record set name to be used to filter the + record set enumeration. If this parameter is specified, the returned enumeration will only + contain records that end with ".\\ :code:``". Default value is None. + :type recordsetnamesuffix: str + :return: An iterator like instance of either RecordSet or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.RecordSet] + :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.RecordSetListResult] = 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_type_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_name, + record_type=record_type, + subscription_id=self._config.subscription_id, + top=top, + recordsetnamesuffix=recordsetnamesuffix, + 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("RecordSetListResult", 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_group_name: str, + private_zone_name: str, + relative_record_set_name: str, + record_type: Union[str, _models.RecordType], + **kwargs: Any + ) -> _models.RecordSet: + """Gets a record set. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType + :return: RecordSet or the result of cls(response) + :rtype: ~azure.mgmt.privatedns.models.RecordSet + :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.RecordSet] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_name, + relative_record_set_name=relative_record_set_name, + record_type=record_type, + 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("RecordSet", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore @overload def create_or_update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: _models.RecordSet, if_match: Optional[str] = None, if_none_match: Optional[str] = None, @@ -340,18 +520,19 @@ def create_or_update( ) -> _models.RecordSet: """Creates or updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param parameters: Parameters supplied to the CreateOrUpdate operation. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -374,8 +555,8 @@ def create_or_update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: IO[bytes], if_match: Optional[str] = None, if_none_match: Optional[str] = None, @@ -385,18 +566,19 @@ def create_or_update( ) -> _models.RecordSet: """Creates or updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param parameters: Parameters supplied to the CreateOrUpdate operation. Required. :type parameters: IO[bytes] :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -419,8 +601,8 @@ def create_or_update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: Union[_models.RecordSet, IO[bytes]], if_match: Optional[str] = None, if_none_match: Optional[str] = None, @@ -428,18 +610,19 @@ def create_or_update( ) -> _models.RecordSet: """Creates or updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA can be updated but not created (they are created when the Private DNS zone is created). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param parameters: Parameters supplied to the CreateOrUpdate operation. Is either a RecordSet type or a IO[bytes] type. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet or IO[bytes] @@ -454,7 +637,7 @@ def create_or_update( :rtype: ~azure.mgmt.privatedns.models.RecordSet :raises ~azure.core.exceptions.HttpResponseError: """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -480,8 +663,8 @@ def create_or_update( _request = build_create_or_update_request( resource_group_name=resource_group_name, private_zone_name=private_zone_name, - record_type=record_type, relative_record_set_name=relative_record_set_name, + record_type=record_type, subscription_id=self._config.subscription_id, if_match=if_match, if_none_match=if_none_match, @@ -503,7 +686,8 @@ def create_or_update( if response.status_code not in [200, 201]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize("RecordSet", pipeline_response.http_response) @@ -517,8 +701,8 @@ def update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: _models.RecordSet, if_match: Optional[str] = None, *, @@ -527,17 +711,18 @@ def update( ) -> _models.RecordSet: """Updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param relative_record_set_name: The name of the record set, relative to the name of the zone. Required. :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param parameters: Parameters supplied to the Update operation. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -557,8 +742,8 @@ def update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: IO[bytes], if_match: Optional[str] = None, *, @@ -567,17 +752,18 @@ def update( ) -> _models.RecordSet: """Updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param relative_record_set_name: The name of the record set, relative to the name of the zone. Required. :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param parameters: Parameters supplied to the Update operation. Required. :type parameters: IO[bytes] :param if_match: The ETag of the record set. Omit this value to always overwrite the current @@ -597,25 +783,26 @@ def update( self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], parameters: Union[_models.RecordSet, IO[bytes]], if_match: Optional[str] = None, **kwargs: Any ) -> _models.RecordSet: """Updates a record set within a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param relative_record_set_name: The name of the record set, relative to the name of the zone. Required. :type relative_record_set_name: str + :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", + "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. + :type record_type: str or ~azure.mgmt.privatedns.models.RecordType :param parameters: Parameters supplied to the Update operation. Is either a RecordSet type or a IO[bytes] type. Required. :type parameters: ~azure.mgmt.privatedns.models.RecordSet or IO[bytes] @@ -627,7 +814,7 @@ def update( :rtype: ~azure.mgmt.privatedns.models.RecordSet :raises ~azure.core.exceptions.HttpResponseError: """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -653,8 +840,8 @@ def update( _request = build_update_request( resource_group_name=resource_group_name, private_zone_name=private_zone_name, - record_type=record_type, relative_record_set_name=relative_record_set_name, + record_type=record_type, subscription_id=self._config.subscription_id, if_match=if_match, api_version=api_version, @@ -675,7 +862,8 @@ def update( if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) deserialized = self._deserialize("RecordSet", pipeline_response.http_response) @@ -689,25 +877,26 @@ def delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, private_zone_name: str, - record_type: Union[str, _models.RecordType], relative_record_set_name: str, + record_type: Union[str, _models.RecordType], if_match: Optional[str] = None, **kwargs: Any ) -> None: """Deletes a record set from a Private DNS zone. This operation cannot be undone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. :type private_zone_name: str + :param relative_record_set_name: The name of the record set, relative to the name of the zone. + Required. + :type relative_record_set_name: str :param record_type: The type of DNS record in this record set. Record sets of type SOA cannot be deleted (they are deleted when the Private DNS zone is deleted). Known values are: "A", "AAAA", "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str :param if_match: The ETag of the record set. Omit this value to always delete the current record set. Specify the last-seen ETag value to prevent accidentally deleting any concurrent changes. Default value is None. @@ -716,7 +905,7 @@ def delete( # pylint: disable=inconsistent-return-statements :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -733,8 +922,8 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( resource_group_name=resource_group_name, private_zone_name=private_zone_name, - record_type=record_type, relative_record_set_name=relative_record_set_name, + record_type=record_type, subscription_id=self._config.subscription_id, if_match=if_match, api_version=api_version, @@ -752,183 +941,12 @@ def delete( # pylint: disable=inconsistent-return-statements if response.status_code not in [200, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if cls: return cls(pipeline_response, None, {}) # type: ignore - @distributed_trace - def get( - self, - resource_group_name: str, - private_zone_name: str, - record_type: Union[str, _models.RecordType], - relative_record_set_name: str, - **kwargs: Any - ) -> _models.RecordSet: - """Gets a record set. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param record_type: The type of DNS record in this record set. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param relative_record_set_name: The name of the record set, relative to the name of the zone. - Required. - :type relative_record_set_name: str - :return: RecordSet or the result of cls(response) - :rtype: ~azure.mgmt.privatedns.models.RecordSet - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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.RecordSet] = kwargs.pop("cls", None) - - _request = build_get_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_name, - record_type=record_type, - relative_record_set_name=relative_record_set_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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - deserialized = self._deserialize("RecordSet", pipeline_response.http_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - @distributed_trace - def list_by_type( - self, - resource_group_name: str, - private_zone_name: str, - record_type: Union[str, _models.RecordType], - top: Optional[int] = None, - recordsetnamesuffix: Optional[str] = None, - **kwargs: Any - ) -> Iterable["_models.RecordSet"]: - """Lists the record sets of a specified type in a Private DNS zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param record_type: The type of record sets to enumerate. Known values are: "A", "AAAA", - "CNAME", "MX", "PTR", "SOA", "SRV", and "TXT". Required. - :type record_type: str or ~azure.mgmt.privatedns.models.RecordType - :param top: The maximum number of record sets to return. If not specified, returns up to 100 - record sets. Default value is None. - :type top: int - :param recordsetnamesuffix: The suffix label of the record set name to be used to filter the - record set enumeration. If this parameter is specified, the returned enumeration will only - contain records that end with ".:code:``". Default value is None. - :type recordsetnamesuffix: str - :return: An iterator like instance of either RecordSet or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.RecordSet] - :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.RecordSetListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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_type_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_name, - record_type=record_type, - subscription_id=self._config.subscription_id, - top=top, - recordsetnamesuffix=recordsetnamesuffix, - 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("RecordSetListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - @distributed_trace def list( self, @@ -940,7 +958,8 @@ def list( ) -> Iterable["_models.RecordSet"]: """Lists all record sets in a Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -950,7 +969,7 @@ def list( :type top: int :param recordsetnamesuffix: The suffix label of the record set name to be used to filter the record set enumeration. If this parameter is specified, the returned enumeration will only - contain records that end with ".:code:``". Default value is None. + contain records that end with ".\\ :code:``". Default value is None. :type recordsetnamesuffix: str :return: An iterator like instance of either RecordSet or the result of cls(response) :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.RecordSet] @@ -962,7 +981,7 @@ def list( api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) cls: ClsType[_models.RecordSetListResult] = kwargs.pop("cls", None) - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -1020,7 +1039,8 @@ def get_next(next_link=None): if response.status_code not in [200]: map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) return pipeline_response diff --git a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_virtual_network_links_operations.py b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_virtual_network_links_operations.py index 77c84c66375f..c3d661d45e91 100644 --- a/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_virtual_network_links_operations.py +++ b/sdk/network/azure-mgmt-privatedns/azure/mgmt/privatedns/operations/_virtual_network_links_operations.py @@ -1,4 +1,4 @@ -# pylint: disable=too-many-lines,too-many-statements +# pylint: disable=line-too-long,useless-suppression,too-many-lines # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -6,11 +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 -import sys -from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, Type, 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, @@ -31,12 +32,9 @@ from azure.mgmt.core.polling.arm_polling import ARMPolling from .. import models as _models -from .._serialization import Serializer +from .._configuration import PrivateDnsManagementClientConfiguration +from .._utils.serialization import Deserializer, Serializer -if sys.version_info >= (3, 9): - from collections.abc import MutableMapping -else: - from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -44,78 +42,66 @@ _SERIALIZER.client_side_validation = False -def build_create_or_update_request( - resource_group_name: str, - private_zone_name: str, - virtual_network_link_name: str, - subscription_id: str, - *, - if_match: Optional[str] = None, - if_none_match: Optional[str] = None, - **kwargs: Any +def build_list_request( + resource_group_name: str, private_zone_name: str, subscription_id: str, *, top: Optional[int] = 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks/{virtualNetworkLinkName}", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "virtualNetworkLinkName": _SERIALIZER.url("virtual_network_link_name", virtual_network_link_name, "str"), - "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 top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") - if if_none_match is not None: - _headers["If-None-Match"] = _SERIALIZER.header("if_none_match", if_none_match, "str") - 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) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_update_request( +def build_get_request( resource_group_name: str, private_zone_name: str, virtual_network_link_name: str, subscription_id: str, - *, - if_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks/{virtualNetworkLinkName}", - ) # 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", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), "virtualNetworkLinkName": _SERIALIZER.url("virtual_network_link_name", virtual_network_link_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -124,40 +110,40 @@ def build_update_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers - if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") - 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="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_delete_request( +def build_create_or_update_request( resource_group_name: str, private_zone_name: str, virtual_network_link_name: str, subscription_id: str, *, if_match: Optional[str] = None, + if_none_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks/{virtualNetworkLinkName}", - ) # 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", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), "virtualNetworkLinkName": _SERIALIZER.url("virtual_network_link_name", virtual_network_link_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -167,35 +153,44 @@ def build_delete_request( # Construct headers if if_match is not None: - _headers["If-Match"] = _SERIALIZER.header("if_match", if_match, "str") + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") + if if_none_match is not None: + _headers["if-none-match"] = _SERIALIZER.header("if_none_match", if_none_match, "str") + 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="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_get_request( +def build_update_request( resource_group_name: str, private_zone_name: str, virtual_network_link_name: str, subscription_id: str, + *, + if_match: 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", "2024-06-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.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks/{virtualNetworkLinkName}", - ) # 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", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), "virtualNetworkLinkName": _SERIALIZER.url("virtual_network_link_name", virtual_network_link_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore @@ -204,13 +199,23 @@ def build_get_request( _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") + 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="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_list_request( - resource_group_name: str, private_zone_name: str, subscription_id: str, *, top: Optional[int] = None, **kwargs: Any +def build_delete_request( + resource_group_name: str, + private_zone_name: str, + virtual_network_link_name: str, + subscription_id: str, + *, + if_match: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -221,25 +226,28 @@ def build_list_request( # Construct URL _url = kwargs.pop( "template_url", - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks", - ) # pylint: disable=line-too-long + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/virtualNetworkLinks/{virtualNetworkLinkName}", + ) path_format_arguments = { - "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), "privateZoneName": _SERIALIZER.url("private_zone_name", private_zone_name, "str"), - "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "virtualNetworkLinkName": _SERIALIZER.url("virtual_network_link_name", virtual_network_link_name, "str"), } _url: str = _url.format(**path_format_arguments) # type: ignore # Construct parameters - if top is not None: - _params["$top"] = _SERIALIZER.query("top", top, "int") _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") # Construct headers + if if_match is not None: + _headers["if-match"] = _SERIALIZER.header("if_match", if_match, "str") _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") - return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) class VirtualNetworkLinksOperations: @@ -256,10 +264,163 @@ class VirtualNetworkLinksOperations: 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: PrivateDnsManagementClientConfiguration = ( + 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, resource_group_name: str, private_zone_name: str, top: Optional[int] = None, **kwargs: Any + ) -> Iterable["_models.VirtualNetworkLink"]: + """Lists the virtual network links to the specified Private DNS zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param top: The maximum number of virtual network links to return. If not specified, returns up + to 100 virtual network links. Default value is None. + :type top: int + :return: An iterator like instance of either VirtualNetworkLink or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.VirtualNetworkLink] + :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.VirtualNetworkLinkListResult] = 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_group_name=resource_group_name, + private_zone_name=private_zone_name, + subscription_id=self._config.subscription_id, + top=top, + 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("VirtualNetworkLinkListResult", 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_group_name: str, private_zone_name: str, virtual_network_link_name: str, **kwargs: Any + ) -> _models.VirtualNetworkLink: + """Gets a virtual network link to the specified Private DNS zone. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param private_zone_name: The name of the Private DNS zone (without a terminating dot). + Required. + :type private_zone_name: str + :param virtual_network_link_name: The name of the virtual network link. Required. + :type virtual_network_link_name: str + :return: VirtualNetworkLink or the result of cls(response) + :rtype: ~azure.mgmt.privatedns.models.VirtualNetworkLink + :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.VirtualNetworkLink] = kwargs.pop("cls", None) + + _request = build_get_request( + resource_group_name=resource_group_name, + private_zone_name=private_zone_name, + virtual_network_link_name=virtual_network_link_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("VirtualNetworkLink", pipeline_response.http_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore def _create_or_update_initial( self, @@ -271,7 +432,7 @@ def _create_or_update_initial( if_none_match: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -324,12 +485,22 @@ def _create_or_update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 201: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) + + if response.status_code == 202: + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -348,7 +519,8 @@ def begin_create_or_update( ) -> LROPoller[_models.VirtualNetworkLink]: """Creates or updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -389,7 +561,8 @@ def begin_create_or_update( ) -> LROPoller[_models.VirtualNetworkLink]: """Creates or updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -428,7 +601,8 @@ def begin_create_or_update( ) -> LROPoller[_models.VirtualNetworkLink]: """Creates or updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -485,7 +659,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + 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: @@ -510,7 +686,7 @@ def _update_initial( if_match: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -562,12 +738,18 @@ def _update_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -585,7 +767,8 @@ def begin_update( ) -> LROPoller[_models.VirtualNetworkLink]: """Updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -621,7 +804,8 @@ def begin_update( ) -> LROPoller[_models.VirtualNetworkLink]: """Updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -655,7 +839,8 @@ def begin_update( ) -> LROPoller[_models.VirtualNetworkLink]: """Updates a virtual network link to the specified Private DNS zone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -707,7 +892,9 @@ def get_long_running_output(pipeline_response): return deserialized if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + 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: @@ -731,7 +918,7 @@ def _delete_initial( if_match: Optional[str] = None, **kwargs: Any ) -> Iterator[bytes]: - error_map: MutableMapping[int, Type[HttpResponseError]] = { + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError, @@ -771,12 +958,18 @@ def _delete_initial( except (StreamConsumedError, StreamClosedError): pass map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) + 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["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) deserialized = response.stream_download(self._client._pipeline, decompress=_decompress) if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore @@ -793,7 +986,8 @@ def begin_delete( registration virtual network, all auto-registered DNS records in the zone for the virtual network will also be deleted. This operation cannot be undone. - :param resource_group_name: The name of the resource group. Required. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. :type resource_group_name: str :param private_zone_name: The name of the Private DNS zone (without a terminating dot). Required. @@ -836,7 +1030,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- return cls(pipeline_response, None, {}) # type: ignore if polling is True: - polling_method: PollingMethod = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) + 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: @@ -849,150 +1045,3 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- deserialization_callback=get_long_running_output, ) return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - @distributed_trace - def get( - self, resource_group_name: str, private_zone_name: str, virtual_network_link_name: str, **kwargs: Any - ) -> _models.VirtualNetworkLink: - """Gets a virtual network link to the specified Private DNS zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param virtual_network_link_name: The name of the virtual network link. Required. - :type virtual_network_link_name: str - :return: VirtualNetworkLink or the result of cls(response) - :rtype: ~azure.mgmt.privatedns.models.VirtualNetworkLink - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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.VirtualNetworkLink] = kwargs.pop("cls", None) - - _request = build_get_request( - resource_group_name=resource_group_name, - private_zone_name=private_zone_name, - virtual_network_link_name=virtual_network_link_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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - deserialized = self._deserialize("VirtualNetworkLink", pipeline_response.http_response) - - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - - return deserialized # type: ignore - - @distributed_trace - def list( - self, resource_group_name: str, private_zone_name: str, top: Optional[int] = None, **kwargs: Any - ) -> Iterable["_models.VirtualNetworkLink"]: - """Lists the virtual network links to the specified Private DNS zone. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param private_zone_name: The name of the Private DNS zone (without a terminating dot). - Required. - :type private_zone_name: str - :param top: The maximum number of virtual network links to return. If not specified, returns up - to 100 virtual network links. Default value is None. - :type top: int - :return: An iterator like instance of either VirtualNetworkLink or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.privatedns.models.VirtualNetworkLink] - :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.VirtualNetworkLinkListResult] = kwargs.pop("cls", None) - - error_map: MutableMapping[int, Type[HttpResponseError]] = { - 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_group_name=resource_group_name, - private_zone_name=private_zone_name, - subscription_id=self._config.subscription_id, - top=top, - 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("VirtualNetworkLinkListResult", 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) - raise HttpResponseError(response=response, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_delete.py index 44e50aa9bcad..5bbddc33b256 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_get.py index 547fa4f49b82..b114f7b81a27 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_resource_group.py b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_resource_group.py index 526b587f522a..90ecb2c28a04 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_resource_group.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_resource_group.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_subscription.py b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_subscription.py index 4b9143d9e157..0c82f0453eb5 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_subscription.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_list_in_subscription.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_patch.py index fd9cdc117201..c48be5ca2458 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_put.py index 38e4279b8168..3decacc153da 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/private_zone_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_delete.py index 3b2bd50e0cd9..ed81d9cd6db9 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="AAAA", relative_record_set_name="recordAAAA", + record_type="AAAA", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_get.py index 85103ca3139a..b1e297464fdb 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="AAAA", relative_record_set_name="recordAAAA", + record_type="AAAA", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_list.py index 5feb7db3072c..b4b56a8ed97c 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_patch.py index f184f04bb25f..891e16a4f6cc 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="AAAA", relative_record_set_name="recordAAAA", + record_type="AAAA", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_put.py index 8960b9c2e377..264537a74330 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aaaa_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="AAAA", relative_record_set_name="recordAAAA", + record_type="AAAA", parameters={ "properties": {"aaaaRecords": [{"ipv6Address": "::1"}], "metadata": {"key1": "value1"}, "ttl": 3600} }, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_adelete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_adelete.py index 6c3664b56c80..92f99bc152ac 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_adelete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_adelete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="A", relative_record_set_name="recordA", + record_type="A", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aget.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aget.py index a3c6af0f96a1..5d61bed5edf3 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aget.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aget.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="A", relative_record_set_name="recordA", + record_type="A", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_alist.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_alist.py index beb94d1ae561..4a687c3e776e 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_alist.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_alist.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_all_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_all_list.py index 5b3b91a02f63..738881b84dda 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_all_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_all_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_apatch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_apatch.py index a41d7f0be84f..6d32ee6d43bb 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_apatch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_apatch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="A", relative_record_set_name="recordA", + record_type="A", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aput.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aput.py index 4b39e6b2e372..28a97b36dc14 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aput.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_aput.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="A", relative_record_set_name="recordA", + record_type="A", parameters={ "properties": {"aRecords": [{"ipv4Address": "1.2.3.4"}], "metadata": {"key1": "value1"}, "ttl": 3600} }, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_delete.py index a6be984b6c3f..d71218d5f067 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="CNAME", relative_record_set_name="recordCNAME", + record_type="CNAME", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_get.py index 91439121521e..daa21efecca6 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="CNAME", relative_record_set_name="recordCNAME", + record_type="CNAME", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_list.py index be8c50ac37c0..a2bb6a7c0328 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_patch.py index f10f61b76eb6..44c65abdf648 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="CNAME", relative_record_set_name="recordCNAME", + record_type="CNAME", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_put.py index 0a89160ecf96..4eff7b8001b9 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_cname_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="CNAME", relative_record_set_name="recordCNAME", + record_type="CNAME", parameters={ "properties": {"cnameRecord": {"cname": "contoso.com"}, "metadata": {"key1": "value1"}, "ttl": 3600} }, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_delete.py index b4ebd525e06f..7a4be54182e2 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="MX", relative_record_set_name="recordMX", + record_type="MX", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_get.py index 7615d00eb69f..ba8bb9fe5bb7 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="MX", relative_record_set_name="recordMX", + record_type="MX", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_list.py index 314fb7d07aa8..5066a8a9367c 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_patch.py index 72a2e13aa7d6..5f32613a84c7 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="MX", relative_record_set_name="recordMX", + record_type="MX", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_put.py index adec729281cc..1108f7b542e6 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_mx_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="MX", relative_record_set_name="recordMX", + record_type="MX", parameters={ "properties": { "metadata": {"key1": "value1"}, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_delete.py index 83f463d007f3..b35811b4d0be 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="0.0.127.in-addr.arpa", - record_type="PTR", relative_record_set_name="1", + record_type="PTR", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_get.py index f027eceb86eb..4f9c34f1bea6 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="0.0.127.in-addr.arpa", - record_type="PTR", relative_record_set_name="1", + record_type="PTR", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_list.py index 5473d1e427a4..deeeecb57331 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_patch.py index 05c85b5ebb84..4b331cd3b86c 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="0.0.127.in-addr.arpa", - record_type="PTR", relative_record_set_name="1", + record_type="PTR", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_put.py index 0517ba2798e7..0b346b9ec557 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_ptr_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="0.0.127.in-addr.arpa", - record_type="PTR", relative_record_set_name="1", + record_type="PTR", parameters={ "properties": {"metadata": {"key1": "value1"}, "ptrRecords": [{"ptrdname": "localhost"}], "ttl": 3600} }, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_get.py index 3d538768d279..1c1b7cb6ef89 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SOA", relative_record_set_name="@", + record_type="SOA", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_list.py index 12be5f42bdeb..404b89f9b8b9 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_patch.py index 533a0a673c2c..936164182263 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SOA", relative_record_set_name="@", + record_type="SOA", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_put.py index e3aed3bf0a31..4645f2353a81 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_soa_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SOA", relative_record_set_name="@", + record_type="SOA", parameters={ "properties": { "metadata": {"key1": "value1"}, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_delete.py index 0e82c0ec495d..e2097f98a57b 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SRV", relative_record_set_name="recordSRV", + record_type="SRV", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_get.py index 6ae2b0e989c2..34af0b4d26d2 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SRV", relative_record_set_name="recordSRV", + record_type="SRV", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_list.py index f508de977c62..b13096dd119a 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_patch.py index 59a80fb20e92..60f2366afe7c 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SRV", relative_record_set_name="recordSRV", + record_type="SRV", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_put.py index c59b2e659df5..ce34b3dd8b55 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_srv_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="SRV", relative_record_set_name="recordSRV", + record_type="SRV", parameters={ "properties": { "metadata": {"key1": "value1"}, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_delete.py index 29bad41c46aa..4f1be8f84967 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): client.record_sets.delete( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="TXT", relative_record_set_name="recordTXT", + record_type="TXT", ) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_get.py index 89beb9015a02..7fca4be12f4d 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.get( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="TXT", relative_record_set_name="recordTXT", + record_type="TXT", ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_list.py index 052a4b496879..161ddf223425 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_patch.py index 958517d0aaec..468d2a5cbb25 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="TXT", relative_record_set_name="recordTXT", + record_type="TXT", parameters={"properties": {"metadata": {"key2": "value2"}}}, ) print(response) diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_put.py index d23389eb3cac..4db3f860b9d7 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/record_set_txt_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -33,8 +34,8 @@ def main(): response = client.record_sets.create_or_update( resource_group_name="resourceGroup1", private_zone_name="privatezone1.com", - record_type="TXT", relative_record_set_name="recordTXT", + record_type="TXT", parameters={ "properties": { "metadata": {"key1": "value1"}, diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_delete.py b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_delete.py index cc48086ba4c7..3b83c87f6ecf 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_delete.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_delete.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_get.py b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_get.py index ea4ea719c894..ea9b2efa2c4a 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_get.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_get.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_list.py b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_list.py index 907ea9d86e85..3b4ac41ff31c 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_list.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_list.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_patch.py b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_patch.py index 80d16a5f964b..390af8ffb0e1 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_patch.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_patch.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_put.py b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_put.py index ee5373634445..922e793e0426 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_put.py +++ b/sdk/network/azure-mgmt-privatedns/generated_samples/virtual_network_link_put.py @@ -1,3 +1,4 @@ +# pylint: disable=line-too-long,useless-suppression # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/conftest.py b/sdk/network/azure-mgmt-privatedns/generated_tests/conftest.py index 6cce36452301..13ad5798a5d0 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/conftest.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/conftest.py @@ -18,7 +18,7 @@ load_dotenv() -# aovid record sensitive identity information in recordings +# For security, please avoid record sensitive identity information in recordings @pytest.fixture(scope="session", autouse=True) def add_sanitizers(test_proxy): privatednsmanagement_subscription_id = os.environ.get( diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations.py b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations.py index 5a51bd6dd358..72d2747076b6 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations.py @@ -20,15 +20,48 @@ def setup_method(self, method): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_begin_create_or_update(self, resource_group): + def test_private_zones_list(self, resource_group): + response = self.client.private_zones.list( + api_version="2024-06-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_private_zones_list_by_resource_group(self, resource_group): + response = self.client.private_zones.list_by_resource_group( + resource_group_name=resource_group.name, + api_version="2024-06-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_private_zones_get(self, resource_group): + response = self.client.private_zones.get( + resource_group_name=resource_group.name, + private_zone_name="str", + api_version="2024-06-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_private_zones_begin_create_or_update(self, resource_group): response = self.client.private_zones.begin_create_or_update( resource_group_name=resource_group.name, private_zone_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", "internalId": "str", - "location": "str", "maxNumberOfRecordSets": 0, "maxNumberOfVirtualNetworkLinks": 0, "maxNumberOfVirtualNetworkLinksWithRegistration": 0, @@ -37,6 +70,14 @@ def test_begin_create_or_update(self, resource_group): "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", }, @@ -48,15 +89,15 @@ def test_begin_create_or_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_begin_update(self, resource_group): + def test_private_zones_begin_update(self, resource_group): response = self.client.private_zones.begin_update( resource_group_name=resource_group.name, private_zone_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", "internalId": "str", - "location": "str", "maxNumberOfRecordSets": 0, "maxNumberOfVirtualNetworkLinks": 0, "maxNumberOfVirtualNetworkLinksWithRegistration": 0, @@ -65,6 +106,14 @@ def test_begin_update(self, resource_group): "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", }, @@ -76,7 +125,7 @@ def test_begin_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_begin_delete(self, resource_group): + def test_private_zones_begin_delete(self, resource_group): response = self.client.private_zones.begin_delete( resource_group_name=resource_group.name, private_zone_name="str", @@ -85,36 +134,3 @@ def test_begin_delete(self, resource_group): # please add some check logic here by yourself # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_get(self, resource_group): - response = self.client.private_zones.get( - resource_group_name=resource_group.name, - private_zone_name="str", - api_version="2024-06-01", - ) - - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_list(self, resource_group): - response = self.client.private_zones.list( - api_version="2024-06-01", - ) - result = [r for r in response] - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_list_by_resource_group(self, resource_group): - response = self.client.private_zones.list_by_resource_group( - resource_group_name=resource_group.name, - api_version="2024-06-01", - ) - result = [r for r in response] - # please add some check logic here by yourself - # ... diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations_async.py b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations_async.py index a343f97c0736..183fc0759700 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations_async.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_private_zones_operations_async.py @@ -21,16 +21,49 @@ def setup_method(self, method): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_begin_create_or_update(self, resource_group): + async def test_private_zones_list(self, resource_group): + response = self.client.private_zones.list( + api_version="2024-06-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_private_zones_list_by_resource_group(self, resource_group): + response = self.client.private_zones.list_by_resource_group( + resource_group_name=resource_group.name, + api_version="2024-06-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_private_zones_get(self, resource_group): + response = await self.client.private_zones.get( + resource_group_name=resource_group.name, + private_zone_name="str", + api_version="2024-06-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_private_zones_begin_create_or_update(self, resource_group): response = await ( await self.client.private_zones.begin_create_or_update( resource_group_name=resource_group.name, private_zone_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", "internalId": "str", - "location": "str", "maxNumberOfRecordSets": 0, "maxNumberOfVirtualNetworkLinks": 0, "maxNumberOfVirtualNetworkLinksWithRegistration": 0, @@ -39,6 +72,14 @@ async def test_begin_create_or_update(self, resource_group): "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", }, @@ -51,16 +92,16 @@ async def test_begin_create_or_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_begin_update(self, resource_group): + async def test_private_zones_begin_update(self, resource_group): response = await ( await self.client.private_zones.begin_update( resource_group_name=resource_group.name, private_zone_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", "internalId": "str", - "location": "str", "maxNumberOfRecordSets": 0, "maxNumberOfVirtualNetworkLinks": 0, "maxNumberOfVirtualNetworkLinksWithRegistration": 0, @@ -69,6 +110,14 @@ async def test_begin_update(self, resource_group): "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", }, @@ -81,7 +130,7 @@ async def test_begin_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_begin_delete(self, resource_group): + async def test_private_zones_begin_delete(self, resource_group): response = await ( await self.client.private_zones.begin_delete( resource_group_name=resource_group.name, @@ -92,36 +141,3 @@ async def test_begin_delete(self, resource_group): # please add some check logic here by yourself # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy_async - async def test_get(self, resource_group): - response = await self.client.private_zones.get( - resource_group_name=resource_group.name, - private_zone_name="str", - api_version="2024-06-01", - ) - - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy_async - async def test_list(self, resource_group): - response = self.client.private_zones.list( - api_version="2024-06-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_list_by_resource_group(self, resource_group): - response = self.client.private_zones.list_by_resource_group( - resource_group_name=resource_group.name, - api_version="2024-06-01", - ) - result = [r async for r in response] - # please add some check logic here by yourself - # ... diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations.py b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations.py index 5706678b39a5..4c1c303d5f02 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations.py @@ -20,12 +20,39 @@ def setup_method(self, method): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_create_or_update(self, resource_group): - response = self.client.record_sets.create_or_update( + def test_record_sets_list_by_type(self, resource_group): + response = self.client.record_sets.list_by_type( + resource_group_name=resource_group.name, + private_zone_name="str", + record_type="str", + api_version="2024-06-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_record_sets_get(self, resource_group): + response = self.client.record_sets.get( resource_group_name=resource_group.name, private_zone_name="str", + relative_record_set_name="str", record_type="str", + api_version="2024-06-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_record_sets_create_or_update(self, resource_group): + response = self.client.record_sets.create_or_update( + resource_group_name=resource_group.name, + private_zone_name="str", relative_record_set_name="str", + record_type="str", parameters={ "aRecords": [{"ipv4Address": "str"}], "aaaaRecords": [{"ipv6Address": "str"}], @@ -48,6 +75,14 @@ def test_create_or_update(self, resource_group): "serialNumber": 0, }, "srvRecords": [{"port": 0, "priority": 0, "target": "str", "weight": 0}], + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "ttl": 0, "txtRecords": [{"value": ["str"]}], "type": "str", @@ -60,12 +95,12 @@ def test_create_or_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_update(self, resource_group): + def test_record_sets_update(self, resource_group): response = self.client.record_sets.update( resource_group_name=resource_group.name, private_zone_name="str", - record_type="str", relative_record_set_name="str", + record_type="str", parameters={ "aRecords": [{"ipv4Address": "str"}], "aaaaRecords": [{"ipv6Address": "str"}], @@ -88,6 +123,14 @@ def test_update(self, resource_group): "serialNumber": 0, }, "srvRecords": [{"port": 0, "priority": 0, "target": "str", "weight": 0}], + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "ttl": 0, "txtRecords": [{"value": ["str"]}], "type": "str", @@ -100,26 +143,12 @@ def test_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_delete(self, resource_group): + def test_record_sets_delete(self, resource_group): response = self.client.record_sets.delete( resource_group_name=resource_group.name, private_zone_name="str", - record_type="str", relative_record_set_name="str", - api_version="2024-06-01", - ) - - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_get(self, resource_group): - response = self.client.record_sets.get( - resource_group_name=resource_group.name, - private_zone_name="str", record_type="str", - relative_record_set_name="str", api_version="2024-06-01", ) @@ -128,20 +157,7 @@ def test_get(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_list_by_type(self, resource_group): - response = self.client.record_sets.list_by_type( - resource_group_name=resource_group.name, - private_zone_name="str", - record_type="str", - api_version="2024-06-01", - ) - result = [r for r in response] - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_list(self, resource_group): + def test_record_sets_list(self, resource_group): response = self.client.record_sets.list( resource_group_name=resource_group.name, private_zone_name="str", diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations_async.py b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations_async.py index ebd4356b15bd..c69d64048496 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations_async.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_record_sets_operations_async.py @@ -21,12 +21,39 @@ def setup_method(self, method): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_create_or_update(self, resource_group): - response = await self.client.record_sets.create_or_update( + async def test_record_sets_list_by_type(self, resource_group): + response = self.client.record_sets.list_by_type( + resource_group_name=resource_group.name, + private_zone_name="str", + record_type="str", + api_version="2024-06-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_record_sets_get(self, resource_group): + response = await self.client.record_sets.get( resource_group_name=resource_group.name, private_zone_name="str", + relative_record_set_name="str", record_type="str", + api_version="2024-06-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_record_sets_create_or_update(self, resource_group): + response = await self.client.record_sets.create_or_update( + resource_group_name=resource_group.name, + private_zone_name="str", relative_record_set_name="str", + record_type="str", parameters={ "aRecords": [{"ipv4Address": "str"}], "aaaaRecords": [{"ipv6Address": "str"}], @@ -49,6 +76,14 @@ async def test_create_or_update(self, resource_group): "serialNumber": 0, }, "srvRecords": [{"port": 0, "priority": 0, "target": "str", "weight": 0}], + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "ttl": 0, "txtRecords": [{"value": ["str"]}], "type": "str", @@ -61,12 +96,12 @@ async def test_create_or_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_update(self, resource_group): + async def test_record_sets_update(self, resource_group): response = await self.client.record_sets.update( resource_group_name=resource_group.name, private_zone_name="str", - record_type="str", relative_record_set_name="str", + record_type="str", parameters={ "aRecords": [{"ipv4Address": "str"}], "aaaaRecords": [{"ipv6Address": "str"}], @@ -89,6 +124,14 @@ async def test_update(self, resource_group): "serialNumber": 0, }, "srvRecords": [{"port": 0, "priority": 0, "target": "str", "weight": 0}], + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "ttl": 0, "txtRecords": [{"value": ["str"]}], "type": "str", @@ -101,26 +144,12 @@ async def test_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_delete(self, resource_group): + async def test_record_sets_delete(self, resource_group): response = await self.client.record_sets.delete( resource_group_name=resource_group.name, private_zone_name="str", - record_type="str", relative_record_set_name="str", - api_version="2024-06-01", - ) - - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy_async - async def test_get(self, resource_group): - response = await self.client.record_sets.get( - resource_group_name=resource_group.name, - private_zone_name="str", record_type="str", - relative_record_set_name="str", api_version="2024-06-01", ) @@ -129,20 +158,7 @@ async def test_get(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_list_by_type(self, resource_group): - response = self.client.record_sets.list_by_type( - resource_group_name=resource_group.name, - private_zone_name="str", - record_type="str", - api_version="2024-06-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_list(self, resource_group): + async def test_record_sets_list(self, resource_group): response = self.client.record_sets.list( resource_group_name=resource_group.name, private_zone_name="str", diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations.py b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations.py index 53ac413d7cc4..87b1ff29b5e9 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations.py @@ -20,19 +20,52 @@ def setup_method(self, method): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_begin_create_or_update(self, resource_group): + def test_virtual_network_links_list(self, resource_group): + response = self.client.virtual_network_links.list( + resource_group_name=resource_group.name, + private_zone_name="str", + api_version="2024-06-01", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_virtual_network_links_get(self, resource_group): + response = self.client.virtual_network_links.get( + resource_group_name=resource_group.name, + private_zone_name="str", + virtual_network_link_name="str", + api_version="2024-06-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_virtual_network_links_begin_create_or_update(self, resource_group): response = self.client.virtual_network_links.begin_create_or_update( resource_group_name=resource_group.name, private_zone_name="str", virtual_network_link_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", - "location": "str", "name": "str", "provisioningState": "str", "registrationEnabled": bool, "resolutionPolicy": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", "virtualNetwork": {"id": "str"}, @@ -46,19 +79,27 @@ def test_begin_create_or_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_begin_update(self, resource_group): + def test_virtual_network_links_begin_update(self, resource_group): response = self.client.virtual_network_links.begin_update( resource_group_name=resource_group.name, private_zone_name="str", virtual_network_link_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", - "location": "str", "name": "str", "provisioningState": "str", "registrationEnabled": bool, "resolutionPolicy": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", "virtualNetwork": {"id": "str"}, @@ -72,7 +113,7 @@ def test_begin_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy - def test_begin_delete(self, resource_group): + def test_virtual_network_links_begin_delete(self, resource_group): response = self.client.virtual_network_links.begin_delete( resource_group_name=resource_group.name, private_zone_name="str", @@ -82,28 +123,3 @@ def test_begin_delete(self, resource_group): # please add some check logic here by yourself # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_get(self, resource_group): - response = self.client.virtual_network_links.get( - resource_group_name=resource_group.name, - private_zone_name="str", - virtual_network_link_name="str", - api_version="2024-06-01", - ) - - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy - def test_list(self, resource_group): - response = self.client.virtual_network_links.list( - resource_group_name=resource_group.name, - private_zone_name="str", - api_version="2024-06-01", - ) - result = [r for r in response] - # please add some check logic here by yourself - # ... diff --git a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations_async.py b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations_async.py index 1764b85bf8a2..4847801f881a 100644 --- a/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations_async.py +++ b/sdk/network/azure-mgmt-privatedns/generated_tests/test_private_dns_management_virtual_network_links_operations_async.py @@ -21,20 +21,53 @@ def setup_method(self, method): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_begin_create_or_update(self, resource_group): + async def test_virtual_network_links_list(self, resource_group): + response = self.client.virtual_network_links.list( + resource_group_name=resource_group.name, + private_zone_name="str", + api_version="2024-06-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_virtual_network_links_get(self, resource_group): + response = await self.client.virtual_network_links.get( + resource_group_name=resource_group.name, + private_zone_name="str", + virtual_network_link_name="str", + api_version="2024-06-01", + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_virtual_network_links_begin_create_or_update(self, resource_group): response = await ( await self.client.virtual_network_links.begin_create_or_update( resource_group_name=resource_group.name, private_zone_name="str", virtual_network_link_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", - "location": "str", "name": "str", "provisioningState": "str", "registrationEnabled": bool, "resolutionPolicy": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", "virtualNetwork": {"id": "str"}, @@ -49,20 +82,28 @@ async def test_begin_create_or_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_begin_update(self, resource_group): + async def test_virtual_network_links_begin_update(self, resource_group): response = await ( await self.client.virtual_network_links.begin_update( resource_group_name=resource_group.name, private_zone_name="str", virtual_network_link_name="str", parameters={ + "location": "str", "etag": "str", "id": "str", - "location": "str", "name": "str", "provisioningState": "str", "registrationEnabled": bool, "resolutionPolicy": "str", + "systemData": { + "createdAt": "2020-02-20 00:00:00", + "createdBy": "str", + "createdByType": "str", + "lastModifiedAt": "2020-02-20 00:00:00", + "lastModifiedBy": "str", + "lastModifiedByType": "str", + }, "tags": {"str": "str"}, "type": "str", "virtualNetwork": {"id": "str"}, @@ -77,7 +118,7 @@ async def test_begin_update(self, resource_group): @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) @recorded_by_proxy_async - async def test_begin_delete(self, resource_group): + async def test_virtual_network_links_begin_delete(self, resource_group): response = await ( await self.client.virtual_network_links.begin_delete( resource_group_name=resource_group.name, @@ -89,28 +130,3 @@ async def test_begin_delete(self, resource_group): # please add some check logic here by yourself # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy_async - async def test_get(self, resource_group): - response = await self.client.virtual_network_links.get( - resource_group_name=resource_group.name, - private_zone_name="str", - virtual_network_link_name="str", - api_version="2024-06-01", - ) - - # please add some check logic here by yourself - # ... - - @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) - @recorded_by_proxy_async - async def test_list(self, resource_group): - response = self.client.virtual_network_links.list( - resource_group_name=resource_group.name, - private_zone_name="str", - api_version="2024-06-01", - ) - result = [r async for r in response] - # please add some check logic here by yourself - # ... diff --git a/sdk/network/azure-mgmt-privatedns/setup.py b/sdk/network/azure-mgmt-privatedns/setup.py index 974aeb2e1b47..5e98c41f1f00 100644 --- a/sdk/network/azure-mgmt-privatedns/setup.py +++ b/sdk/network/azure-mgmt-privatedns/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", @@ -77,7 +76,7 @@ "isodate>=0.6.1", "typing-extensions>=4.6.0", "azure-common>=1.1", - "azure-mgmt-core>=1.3.2", + "azure-mgmt-core>=1.5.0", ], - python_requires=">=3.8", + python_requires=">=3.9", )